En el diseño de bases de datos existen propiedades indeseables que no deberían presentarse en los esquemas. Éstas son:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Control.Monad (ap, forM_) | |
import qualified Data.Map as M | |
-- The Collapse Monad | |
-- ------------------ | |
-- The Collapse Monad allows collapsing a value with labelled superpositions | |
-- into a flat list of superposition-free values. It is like the List Monad, | |
-- except that, instead of always doing a cartesian product, it will perform | |
-- pairwise merges of distant parts of your program that are "entangled" | |
-- under the same label. Examples: |
L1 cache reference ......................... 0.5 ns
Branch mispredict ............................ 5 ns
L2 cache reference ........................... 7 ns
Mutex lock/unlock ........................... 25 ns
Main memory reference ...................... 100 ns
Compress 1K bytes with Zippy ............. 3,000 ns = 3 µs
Send 2K bytes over 1 Gbps network ....... 20,000 ns = 20 µs
SSD random read ........................ 150,000 ns = 150 µs
Read 1 MB sequentially from memory ..... 250,000 ns = 250 µs