Knowledge (XXG)

Surrogate key

Source đź“ť

25: 1598: 1608: 329:. Every row would have both a business key and a surrogate key. The surrogate key identifies one unique row in the database, the business key identifies one unique entity of the modeled world. One table row represents a slice of time holding all the entity's attributes for a defined timespan. Those slices depict the whole lifespan of one business entity. For example, a table 1618: 201:. In a temporal database, however, there is a many-to-one relationship between primary keys and the surrogate. Since there may be several objects in the database corresponding to a single surrogate, we cannot use the surrogate as a primary key; another attribute is required, in addition to the surrogate, to uniquely identify each object. 702:
Surrogate keys are unnatural for data that is exported and shared. A particular difficulty is that tables from two otherwise identical schemas (for example, a test schema and a development schema) can hold records that are equivalent in a business sense, but have different keys. This can be mitigated
694:
between the table with the foreign key and the table with the primary key, showing both key fields in addition to any fields required to distinguish the record; all invalid foreign-key values will have the primary-key column as NULL. The need to perform such a check is so common that Microsoft Access
732:—and since the identifying attributes are likely to be those queried, then the query optimizer is forced to perform a full table scan when fulfilling likely queries. The remedy to the full table scan is to apply indexes on the identifying attributes, or sets of them. Where such sets are themselves a 656:
It is possible to design key-values that follow a well-known pattern or structure which can be automatically verified. For instance, the keys that are intended to be used in some column of some table might be designed to "look differently from" those that are intended to be used in another column or
804:
Sequentially generated surrogate keys can imply that events with a higher key value occurred after events with a lower value. This is not necessarily true, because such values do not guarantee time sequence as it is possible for inserts to fail and leave gaps which may be filled at a later time. If
710:
will be compromised. For example, in a customer master table, the same customer may have multiple records under separate customer IDs, even though the natural key (a combination of customer name, date of birth, and e-mail address) would be unique. To prevent compromise, the natural key of the table
678:
of the data held in a row. When inspecting a row holding a foreign key reference to another table using a surrogate key, the meaning of the surrogate key's row cannot be discerned from the key itself. Every foreign key must be joined to see the related data item. If appropriate database constraints
767:
Because surrogate keys are unnatural, flaws can appear when modeling the business requirements. Business requirements, relying on the natural key, then need to be translated to the surrogate key. A strategy is to draw a clear distinction between the logical model (in which surrogate keys do not
776:
Proprietary information can be leaked if surrogate keys are generated sequentially. By subtracting a previously generated sequential key from a recently generated sequential key, one could learn the number of rows inserted during that time period. This could expose, for example, the number of
727:
is applied to a table's primary key. The unique index serves two purposes: (i) to enforce entity integrity, since primary key data must be unique across rows and (ii) to quickly search for rows when queried. Since surrogate keys replace a table's identifying attributes—the
657:
table, thereby simplifying the detection of application errors in which the keys have been misplaced. However, this characteristic of the surrogate keys should never be used to drive any of the logic of the applications themselves, as this would violate the principles of
590:
An employee's network user name is chosen as a natural key. Upon merging with another company, new employees must be inserted. Some of the new network user names create conflicts because their user names were generated independently (when the companies were
695:
actually provides a "Find Unmatched Query" wizard that generates the appropriate SQL after walking the user through a dialog. (It is, however, not too difficult to compose such queries manually.) "Find Unmatched" queries are typically employed as part of a
611:
Surrogate keys tend to be a compact data type, such as a four-byte integer. This allows the database to query the single key column faster than it could multiple columns. Furthermore, a non-redundant distribution of keys causes the resulting
768:
appear) and the physical implementation of that model, to ensure that the logical model is correct and reasonably well normalised, and to ensure that the physical model is a correct implementation of the logical model.
252:
derived from any application data in the database. The only significance of the surrogate key is to act as the primary key. It is also possible that the surrogate key exists in addition to the database-generated
599:
column). With a surrogate key, only the table that defines the surrogate key must be changed. With natural keys, all tables (and possibly other, related software) that use the natural key will have to change.
196:
valid data, there is a one-to-one correspondence between a surrogate in the modeled world and the primary key of the database. In this case the surrogate may be used as a primary key, resulting in the term
333:
may hold temporal information to keep track of contracted working hours. The business key for one contract will be identical (non-unique) in both rows however the surrogate key for each row is unique.
640:, it is much easier to use an integer or GUID surrogate keys for every table instead of natural keys in order to support database-system-agnostic operations and object-to-row mapping. 1043: 1051:(Technical report). Technical Report / Faculty of Mathematics and Computer Science. Vol. IR-267. Amsterdam: Faculty of Mathematics and Computer Science, Vrije Universiteit. 1208: 1191: 1107: 1203: 314:
Having the key independent of all other columns insulates the database relationships from changes in data values or database design (making the database more
683:
was not employed, it is possible to have a foreign-key value that does not correspond to a primary-key value and is therefore invalid. (In this regard,
703:
by not exporting surrogate keys, except as transient data (most obviously, in executing applications that have a "live" connection to the database).
586:
Attributes that uniquely identify an entity might change, which might invalidate the suitability of natural keys. Consider the following example:
552:
Table Sequence when the sequence is calculated by a procedure and a sequence table with fields: id, sequenceName, sequenceValue and incrementValue
873: 1642: 1601: 920: 751:. To prevent duplication, one must preserve the role of the natural keys as unique constraints when defining the table using either SQL's 603:
Some problem domains do not clearly identify a suitable natural key. Surrogate keys avoid choosing a natural key that might be incorrect.
46: 1274: 1163: 1621: 1015: 68: 648:
When every table has a uniform surrogate key, some tasks can be easily automated by writing the code in a table-independent way.
573:
The primary or natural key data can always be modified, even with databases that do not support cascading updates across related
151:
in the outside world. The surrogate is internally generated by the system but is nevertheless visible to the user or application.
1327: 1578: 1225: 1081: 925: 629: 1517: 1111: 792: 442: 254: 824: 161:
in the database itself. The surrogate is internally generated by the system and is invisible to the user or application.
1543: 1262: 1038:, Proceedings of File 68, an IFIP/IAG International Seminar on File Organisation, Amsterdam, November, pp. 89–96. 39: 33: 991:
C.J. Date. The primacy of primary keys. From "Relational Database Writings, 1991-1994. Addison-Wesley, Reading, MA.
1466: 1456: 1232: 460: 448: 315: 261: 245: 1553: 1286: 616:
index to be completely balanced. Surrogate keys are also less expensive to join (fewer columns to compare) than
50: 543: 208:(1976) say nothing about this, others have argued that a surrogate should have the following characteristics: 1512: 1502: 1156: 1215: 939: 1647: 1583: 1538: 1052: 658: 570:
Applications cannot lose their reference to a row in the database (since the identifier does not change).
1558: 707: 680: 1312: 1127: 712: 1611: 1548: 1430: 1400: 1269: 1220: 265: 180:
An important distinction between a surrogate and a primary key depends on whether the database is a
1568: 1461: 1446: 1373: 1198: 1057: 886: 778: 1563: 1507: 1476: 1425: 1257: 1149: 473: 420:
Some database designers use surrogate keys systematically regardless of the suitability of other
280: 1317: 1031: 566:
Surrogate keys typically do not change while the row exists. This has the following advantages:
1028:, Annual Review in Automatic Programming, Vol.7, Part 1, Pergamon Press, Oxford, pp. 1–64. 1383: 1237: 1077: 1011: 819: 739:
These additional indexes, however, will take up disk space and slow down inserts and deletes.
454: 322: 185: 1573: 1420: 1410: 1378: 849: 724: 637: 595:
In these cases, generally a new attribute must be added to the natural key (for example, an
523: 237: 181: 519:
is used it will prevent the reuse of numbers that have already been used but are available)
1481: 1451: 1405: 1186: 953: 900: 16:
Unique identifier for either an entity in the modeled world or an object in the database
1533: 1471: 1415: 1388: 1281: 1242: 696: 1636: 1337: 733: 633: 421: 174: 924: prior to 1 November 2008 and incorporated under the "relicensing" terms of the 257:(for example, an HR number for each employee other than the UUID of each employee). 715:, which is implemented as a unique index on the combination of natural-key fields. 617: 497: 1342: 1322: 814: 748: 729: 574: 326: 241: 122: 1486: 1395: 1357: 1332: 1141: 691: 674:
The values of generated surrogate keys have no relationship to the real-world
536: 493: 269: 170: 684: 424:, while others will use a key already present in the data, if there is one. 628:
While using several database application development systems, drivers, and
1347: 1302: 1172: 547: 427:
Some of the alternate names ("system-generated key") describe the way of
273: 106: 805:
chronology is important then date and time must be separately recorded.
532: 1092: 1045:
The identification of objects and roles - Object identifiers revisited
1252: 613: 509: 915: 690:
To discover such errors, one must perform a query that uses a left
325:, it is necessary to distinguish between the surrogate key and the 227:
the value is not composed of several values from different domains.
1247: 967: 292: 1307: 1108:"Create Data Disaster: Avoid Unique Indexes – (Mistake 3 of 10)" 706:
When surrogate keys supplant natural keys, then domain specific
687:
regards the meaninglessness of surrogate keys as an advantage.)
300: 296: 1145: 679:
have not been set, or data imported from a legacy system where
18: 872:
P A V Hall, J Owlett, S J P Todd, "Relations and Entities",
759:
statement, if the constraints are added as an afterthought.
303:
as a possible data type for surrogate keys (e.g. PostgreSQL
260:
A surrogate key is frequently a sequential number (e.g. a
874:
Modelling in Data Base Management Systems (ed GM Nijssen)
777:
transactions or new accounts per period. For example see
850:"What is a Surrogate Key? - Definition from Techopedia" 218:
the value is not manipulable by the user or application
177:
and is used throughout this article. See Date (1998).
747:
Surrogate keys can result in duplicate values in any
1526: 1495: 1439: 1366: 1295: 1179: 224:
the value is not visible to the user or application
140:There are at least two definitions of a surrogate: 788:increase the sequential number by a random amount; 711:must not be supplanted: it must be preserved as a 154:Surrogate (2) – Wieringa and De Jonge (1991) 144:Surrogate (1) – Hall, Owlett and Todd (1976) 784:There are a few ways to overcome this problem: 901:"Uniqueidentifier (Transact-SQL) - SQL Server" 1157: 954:"CREATE SEQUENCE (Transact-SQL) - SQL Server" 914:This article is based on material taken from 438:Approaches to generating surrogates include: 8: 1036:Elementary Files and Elementary File Records 1164: 1150: 1142: 1072:Date, C. J. (1998). "Chapters 11 and 12". 1042:Wieringa, Roel; de Jonge, Wiebren (1991). 1056: 1008:Modelling in Data Base Management Systems 69:Learn how and when to remove this message 335: 121:derived from application data, unlike a 32:This article includes a list of general 1128:"Database Soup: Primary Keyvil, Part I" 841: 1074:Relational Database Writings 1994–1997 221:the value contains no semantic meaning 117:in the database. The surrogate key is 723:Relational databases assume a unique 699:process when inheriting legacy data. 431:new surrogate values rather than the 109:is a unique identifier for either an 7: 1026:A Tutorial on Data-Base Organization 921:Free On-line Dictionary of Computing 1617: 1093:"Intelligent Versus Surrogate Keys" 736:, the index can be a unique index. 38:it lacks sufficient corresponding 14: 940:"Database SQL Language Reference" 1616: 1606: 1597: 1596: 791:generate a random key such as a 542:Identity column (implemented in 529:AS IDENTITY GENERATED BY DEFAULT 23: 1607: 490:(starting from SQL Server 2012) 240:, the surrogate key can be the 757:ALTER TABLE ... ADD CONSTRAINT 463:or SQL Server identity column 443:Universally Unique Identifiers 1: 318:) and guarantees uniqueness. 215:the value is system generated 825:Persistent object identifier 483:(starting from version 12.1) 1643:Database management systems 1173:Database management systems 449:Globally Unique Identifiers 113:in the modeled world or an 1664: 1579:Object–relational database 435:of the surrogate concept. 295:). Some databases provide 246:database management system 157:A surrogate represents an 147:A surrogate represents an 1592: 1554:Federated database system 1287:Blockchain-based database 1010:. North-Holland Pub. Co. 763:Business process modeling 630:object–relational mapping 287:or a column defined with 212:the value is never reused 522:AutoNumber data type in 169:definition relates to a 928:, version 1.3 or later. 800:Inadvertent assumptions 53:more precise citations. 1584:Transaction processing 1539:Database normalization 1482:Query rewriting system 1024:Engles, R.W.: (1972), 1006:Nijssen, G.M. (1976). 968:"SQLite Autoincrement" 772:Inadvertent disclosure 659:database normalization 232:Surrogates in practice 1559:Referential integrity 876:, North Holland 1976. 708:referential integrity 681:referential integrity 481:GENERATED AS IDENTITY 268:"identity column", a 1549:Distributed database 1569:Relational calculus 1447:Concurrency control 956:. 29 December 2022. 779:German tank problem 582:Requirement changes 513:INTEGER PRIMARY KEY 348:WorkingHoursPerWeek 244:, generated by the 1564:Relational algebra 1508:Query optimization 1313:Armstrong's axioms 1076:. Addison-Wesley. 719:Query optimization 455:Object Identifiers 1630: 1629: 1238:Wide-column store 1233:Document-oriented 1106:Richardson, Lee. 887:"8.12. UUID Type" 820:Object identifier 713:unique constraint 632:systems, such as 418: 417: 331:EmployeeContracts 323:temporal database 186:temporal database 95:entity identifier 79: 78: 71: 1655: 1620: 1619: 1610: 1609: 1600: 1599: 1574:Relational model 1544:Database storage 1421:Stored procedure 1166: 1159: 1152: 1143: 1137: 1135: 1134: 1122: 1120: 1119: 1110:. Archived from 1102: 1100: 1099: 1087: 1068: 1066: 1065: 1060: 1050: 1021: 992: 989: 983: 982: 980: 979: 964: 958: 957: 950: 944: 943: 936: 930: 929: 911: 905: 904: 897: 891: 890: 883: 877: 870: 864: 863: 861: 860: 846: 758: 754: 597:original_company 530: 524:Microsoft Access 518: 514: 506: 489: 482: 478: 470: 466: 336: 310: 309:UNIQUEIDENTIFIER 306: 290: 286: 278: 238:current database 190:current database 182:current database 74: 67: 63: 60: 54: 49:this article by 40:inline citations 27: 26: 19: 1663: 1662: 1658: 1657: 1656: 1654: 1653: 1652: 1633: 1632: 1631: 1626: 1588: 1534:Database models 1522: 1491: 1477:Query optimizer 1452:Data dictionary 1435: 1406:Transaction log 1362: 1318:Codd's 12 rules 1291: 1221:Column-oriented 1187:Object-oriented 1175: 1170: 1140: 1132: 1130: 1125: 1117: 1115: 1105: 1097: 1095: 1091:Carter, Breck. 1090: 1084: 1071: 1063: 1061: 1048: 1041: 1018: 1005: 1001: 996: 995: 990: 986: 977: 975: 966: 965: 961: 952: 951: 947: 938: 937: 933: 913: 912: 908: 899: 898: 894: 885: 884: 880: 871: 867: 858: 856: 848: 847: 843: 838: 833: 811: 802: 774: 765: 756: 752: 745: 721: 672: 667: 654: 646: 626: 609: 584: 564: 559: 528: 516: 512: 504: 487: 480: 476: 468: 464: 308: 304: 288: 284: 276: 234: 138: 75: 64: 58: 55: 45:Please help to 44: 28: 24: 17: 12: 11: 5: 1661: 1659: 1651: 1650: 1645: 1635: 1634: 1628: 1627: 1625: 1624: 1614: 1604: 1593: 1590: 1589: 1587: 1586: 1581: 1576: 1571: 1566: 1561: 1556: 1551: 1546: 1541: 1536: 1530: 1528: 1527:Related topics 1524: 1523: 1521: 1520: 1515: 1510: 1505: 1503:Administration 1499: 1497: 1493: 1492: 1490: 1489: 1484: 1479: 1474: 1472:Query language 1469: 1464: 1459: 1454: 1449: 1443: 1441: 1437: 1436: 1434: 1433: 1428: 1423: 1418: 1413: 1408: 1403: 1398: 1393: 1392: 1391: 1386: 1381: 1370: 1368: 1364: 1363: 1361: 1360: 1355: 1350: 1345: 1340: 1335: 1330: 1325: 1320: 1315: 1310: 1305: 1299: 1297: 1293: 1292: 1290: 1289: 1284: 1279: 1278: 1277: 1267: 1266: 1265: 1255: 1250: 1245: 1240: 1235: 1230: 1229: 1228: 1218: 1213: 1212: 1211: 1206: 1196: 1195: 1194: 1183: 1181: 1177: 1176: 1171: 1169: 1168: 1161: 1154: 1146: 1139: 1138: 1126:Berkus, Josh. 1123: 1103: 1088: 1082: 1069: 1058:10.1.1.16.3195 1039: 1029: 1022: 1016: 1002: 1000: 997: 994: 993: 984: 959: 945: 931: 906: 903:. 23 May 2023. 892: 878: 865: 854:Techopedia.com 840: 839: 837: 834: 832: 829: 828: 827: 822: 817: 810: 807: 801: 798: 797: 796: 789: 773: 770: 764: 761: 744: 741: 720: 717: 697:data cleansing 671: 670:Disassociation 668: 666: 663: 653: 650: 645: 642: 625: 622: 608: 605: 593: 592: 583: 580: 579: 578: 571: 563: 560: 558: 555: 554: 553: 550: 540: 526: 520: 507: 505:AUTO_INCREMENT 501: 491: 484: 471: 458: 452: 446: 422:candidate keys 416: 415: 412: 409: 406: 403: 400: 396: 395: 392: 389: 386: 383: 380: 376: 375: 372: 369: 366: 363: 360: 356: 355: 352: 349: 346: 343: 340: 307:or SQL Server 289:AUTO_INCREMENT 283:or SQL Server 233: 230: 229: 228: 225: 222: 219: 216: 213: 204:Although Hall 173:rather than a 163: 162: 155: 152: 145: 137: 134: 77: 76: 31: 29: 22: 15: 13: 10: 9: 6: 4: 3: 2: 1660: 1649: 1648:Data modeling 1646: 1644: 1641: 1640: 1638: 1623: 1615: 1613: 1605: 1603: 1595: 1594: 1591: 1585: 1582: 1580: 1577: 1575: 1572: 1570: 1567: 1565: 1562: 1560: 1557: 1555: 1552: 1550: 1547: 1545: 1542: 1540: 1537: 1535: 1532: 1531: 1529: 1525: 1519: 1516: 1514: 1511: 1509: 1506: 1504: 1501: 1500: 1498: 1494: 1488: 1485: 1483: 1480: 1478: 1475: 1473: 1470: 1468: 1465: 1463: 1460: 1458: 1455: 1453: 1450: 1448: 1445: 1444: 1442: 1438: 1432: 1429: 1427: 1424: 1422: 1419: 1417: 1414: 1412: 1409: 1407: 1404: 1402: 1399: 1397: 1394: 1390: 1387: 1385: 1382: 1380: 1377: 1376: 1375: 1372: 1371: 1369: 1365: 1359: 1356: 1354: 1353:Surrogate key 1351: 1349: 1346: 1344: 1341: 1339: 1338:Candidate key 1336: 1334: 1331: 1329: 1326: 1324: 1321: 1319: 1316: 1314: 1311: 1309: 1306: 1304: 1301: 1300: 1298: 1294: 1288: 1285: 1283: 1280: 1276: 1273: 1272: 1271: 1268: 1264: 1261: 1260: 1259: 1256: 1254: 1251: 1249: 1246: 1244: 1241: 1239: 1236: 1234: 1231: 1227: 1224: 1223: 1222: 1219: 1217: 1214: 1210: 1207: 1205: 1202: 1201: 1200: 1197: 1193: 1190: 1189: 1188: 1185: 1184: 1182: 1178: 1174: 1167: 1162: 1160: 1155: 1153: 1148: 1147: 1144: 1129: 1124: 1114:on 2008-01-30 1113: 1109: 1104: 1094: 1089: 1085: 1079: 1075: 1070: 1059: 1054: 1047: 1046: 1040: 1037: 1033: 1030: 1027: 1023: 1019: 1017:0-7204-0459-2 1013: 1009: 1004: 1003: 998: 988: 985: 973: 969: 963: 960: 955: 949: 946: 941: 935: 932: 927: 923: 922: 917: 916:Surrogate+key 910: 907: 902: 896: 893: 889:. 9 May 2024. 888: 882: 879: 875: 869: 866: 855: 851: 845: 842: 835: 830: 826: 823: 821: 818: 816: 813: 812: 808: 806: 799: 794: 790: 787: 786: 785: 782: 780: 771: 769: 762: 760: 755:statement or 750: 743:Normalization 742: 740: 737: 735: 734:candidate key 731: 726: 718: 716: 714: 709: 704: 700: 698: 693: 688: 686: 682: 677: 669: 665:Disadvantages 664: 662: 660: 651: 649: 643: 641: 639: 635: 634:Ruby on Rails 631: 624:Compatibility 623: 621: 619: 615: 606: 604: 601: 598: 589: 588: 587: 581: 576: 572: 569: 568: 567: 561: 556: 551: 549: 545: 541: 538: 534: 527: 525: 521: 517:AUTOINCREMENT 511: 508: 502: 499: 495: 492: 485: 475: 472: 469:IDENTITY(n,n) 462: 459: 456: 453: 450: 447: 444: 441: 440: 439: 436: 434: 430: 425: 423: 413: 410: 407: 404: 401: 398: 397: 393: 390: 387: 384: 381: 378: 377: 373: 370: 367: 364: 361: 358: 357: 353: 350: 347: 344: 341: 338: 337: 334: 332: 328: 324: 319: 317: 312: 302: 298: 294: 282: 275: 271: 267: 263: 258: 256: 251: 247: 243: 239: 231: 226: 223: 220: 217: 214: 211: 210: 209: 207: 202: 200: 199:surrogate key 195: 191: 187: 183: 178: 176: 175:storage model 172: 168: 167:Surrogate (1) 160: 156: 153: 150: 146: 143: 142: 141: 135: 133: 131: 129: 125: 120: 116: 112: 108: 104: 103:technical key 100: 96: 92: 88: 87:synthetic key 84: 83:surrogate key 73: 70: 62: 52: 48: 42: 41: 35: 30: 21: 20: 1352: 1131:. Retrieved 1116:. Retrieved 1112:the original 1096:. Retrieved 1073: 1062:. Retrieved 1044: 1035: 1032:Langefors, B 1025: 1007: 987: 976:. Retrieved 974:. 2017-02-02 971: 962: 948: 934: 919: 909: 895: 881: 868: 857:. Retrieved 853: 844: 803: 783: 775: 766: 753:CREATE TABLE 749:natural keys 746: 738: 722: 705: 701: 689: 675: 673: 655: 647: 627: 618:compound key 610: 602: 596: 594: 585: 575:foreign keys 565: 498:IBM Informix 437: 432: 428: 426: 419: 351:RowValidFrom 345:EmployeeName 339:SurrogateKey 330: 327:business key 320: 313: 259: 249: 235: 205: 203: 198: 193: 192:stores only 189: 179: 166: 164: 158: 148: 139: 127: 123: 118: 114: 110: 102: 99:factless key 98: 94: 90: 86: 82: 80: 65: 56: 37: 1622:WikiProject 1513:Replication 1401:Transaction 1343:Foreign key 1323:CAP theorem 1270:Multi-model 815:Natural key 730:natural key 607:Performance 486:SQL Server 414:2009-12-31 394:2011-12-31 374:2000-12-31 354:RowValidTo 342:BusinessKey 242:primary key 51:introducing 1637:Categories 1487:Query plan 1440:Components 1358:Unique key 1275:comparison 1209:comparison 1199:Relational 1192:comparison 1133:2006-12-03 1118:2008-01-19 1098:2006-12-03 1083:0201398141 1064:2022-12-02 978:2022-12-02 859:2020-02-21 831:References 692:outer join 652:Validation 644:Uniformity 591:separate). 557:Advantages 537:PostgreSQL 494:PostgreSQL 429:generating 411:2001-01-01 405:John Smith 391:1999-01-01 371:2000-01-01 365:John Smith 270:PostgreSQL 266:SQL Server 188:. Since a 171:data model 136:Definition 34:references 1496:Functions 1431:Partition 1258:In-memory 1216:Key–value 1053:CiteSeerX 836:Citations 685:C.J. Date 638:Hibernate 562:Stability 385:Bob Brown 194:currently 91:pseudokey 59:July 2009 1602:Category 1518:Sharding 1374:Relation 1348:Superkey 1303:Database 1296:Concepts 1034:(1968). 809:See also 548:Teradata 488:SEQUENCE 477:SEQUENCE 465:IDENTITY 382:P0000123 285:SEQUENCE 274:Informix 128:business 107:database 1612:Outline 1411:Trigger 1367:Objects 999:Sources 918:at the 676:meaning 533:IBM Db2 451:(GUIDs) 445:(UUIDs) 402:BOS0120 362:BOS0120 124:natural 105:) in a 47:improve 1426:Cursor 1384:column 1253:NewSQL 1080:  1055:  1014:  972:SQLite 614:b-tree 510:SQLite 503:MySQL 500:serial 474:Oracle 461:Sybase 457:(OIDs) 433:nature 281:Oracle 277:serial 262:Sybase 206:et al. 159:object 149:entity 115:object 111:entity 36:, but 1416:Index 1379:table 1282:Cloud 1248:NoSQL 1243:Graph 1180:Types 1049:(PDF) 725:index 546:) in 479:, or 321:In a 316:agile 293:MySQL 279:, an 236:In a 184:or a 130:) key 101:, or 1467:ODBC 1457:JDBC 1396:View 1333:Null 1328:CRUD 1308:ACID 1263:list 1226:list 1204:list 1078:ISBN 1012:ISBN 926:GFDL 793:UUID 535:and 515:(if 305:UUID 301:GUID 297:UUID 255:UUID 248:and 165:The 126:(or 85:(or 1462:XQJ 1389:row 636:or 544:DDL 531:in 496:or 467:OR 399:234 311:). 291:in 272:or 264:or 250:not 119:not 1639:: 970:. 852:. 781:. 661:. 620:. 408:35 388:25 379:56 368:40 132:. 97:, 93:, 89:, 81:A 1165:e 1158:t 1151:v 1136:. 1121:. 1101:. 1086:. 1067:. 1020:. 981:. 942:. 862:. 795:. 577:. 539:. 359:1 299:/ 72:) 66:( 61:) 57:( 43:.

Index

references
inline citations
improve
introducing
Learn how and when to remove this message
database
natural (or business) key
data model
storage model
current database
temporal database
current database
primary key
database management system
UUID
Sybase
SQL Server
PostgreSQL
Informix
Oracle
MySQL
UUID
GUID
agile
temporal database
business key
candidate keys
Universally Unique Identifiers
Globally Unique Identifiers
Object Identifiers

Text is available under the Creative Commons Attribution-ShareAlike License. Additional terms may apply.

↑