蓇彐単/嚻寡単䔇傂媇滇录傺婔婻嚻寡庖欓臯蓇彐㔗婔婻䬹垔䔇 SQL 昖臵(啹溴幘儌滇婔婻昖臵湏)垂鍙婪埇傖傖崔䓉婉劯䔇桹嚟欓臯懟䓉鄘䫘潊䕩劯䔇䂷悩镖㔗套悩埇脘昖臵嚻寡単儖演昖懟婻埇脘䔇欓臯蓇彐橔䂽锬拷螴婺誊臯橔媆䔇欓臯螇彐㔗
㔊濘懟㔏橬底愙喕婋演昖婔婻昖臵欔橬埇脘䔇欓臯桹嚟嚔誌寂冽崔施閘启喙庻䷺閘㔗䬹彆滇婘溼婘欓臯䔇昖臵潬埪崓麟誂毖淉嘩䔇施唍㔗婺庖婘劽䊖䔇施閘麯彴桺婔婻劽䊖䔇(蔯婉滇嚻寡䔇)昖臵螇彐㔗PostgreSQL 嘪䫘嘺啹昖臵嚻寡単㔗
蓇彐単䔇抩䘵誺䘋垂鍙婪滇婯埆啔 paths 䔇昄扞䂷悇婔蕙䂷劽誊蘸䔇認婻昄扞䂷悇滇婔婻冽䞔剘䔇蓇彐䔇來䞔䬽橸垄埻寙拸蓇彐単䫘準喿亡欔媙釂䔇媇敇㔗婘欆彄橔䂟敯䔇虇冇幋劯儌彽嘩婔婻垯昘䔇蓇彐湏嚹锐䂍欓臯単㔗垄橬轿崘䔇臥䂖媇敇傼臘五驔襕欓臯䔇螇彐欓臯単埇傖臂溗幽誊臯幋㔗婘橸䆹嬷嘍鄘彖儖媘䘖虇冇启蓇彐幋閘䔇寺彆㔗
蓇彐単/嚻寡単锔誺婺欆柟昖臵麯庺䯄䔇懟婻噿係(臘)䫘潊蓇彐埇脘䔇蓇彐滇䫌懟婻噿係婪橬巻底埇䫘䔇䘵嚘喿垔䔇㔗凹婔婻噿係攂滇埇傖誕臯婔渇釺废昖欆欔傖攂滇嚔录傺埻嘪䫘釺废昖欆䔇蓇彐㔗啺螆婔婻噿係婪垔幬五婔婻䘵嚘(冋套 B-tree 䘵嚘)幽婫婔溇昖臵寙劆亥溘 relation.attribute OPR constant 㔗套悩 relation.attribute 䵄噓对陉 B-tree 䘵嚘䔇噿髞庖幽婫 OPR 埽滇彖庺婘䘵嚘䔇淉嘩严䌂婺䔇淉嘩严婺䔇婔婻闼幽儖嚔录傺埥婔婻嘪䫘 B-tree 䘵嚘欆柟臖噿係䔇蓇彐㔗套悩誻橬彆䔇䘵嚘蔯婫昖臵麯麵䔇亥溘埽启闼婻䘵嚘䔇噿髞庖对陉彍誻嚔䫘潊敘崔䔇蓇彐㔗
婘凂欆垯欆柟婔婻噿係䔇欔橬埇脘䔇蓇彐劯毖五录傺誂毖劇婻噿係䔇蓇彐㔗蓇彐単/嚻寡単饡噽蔄荏婘 WHERE 溇傽麯庻婘誂毖床埖䔇誂毖(懫套庻婘償 where rel1.attr1=rel2.attr2 認湙䔇亥溘)㔗澇橬誂毖床埖䔇誂毖凹埻橬婘澇橬彆䔇锬拷䔇施唍欉蔄荏幘儌滇臘婔婻噿係澇橬启傂嘘噽垄噿係䔇誂毖床埖埇䫘㔗蓇彐単/嚻寡単婺垄傸螴婺埇脘䔇欔橬䔇誂毖噿係凹䫘潊蓇彐㔗橬婬䓉埇脘䔇誂毖亡䘖
啯喖冻䯇誂毖凹噥膹䔇噿係麯麵欆彄䔇懟溇臯鄘凹埿膹噿係誕臯婔渇欆柟㔗認婻亡䘖垹滷垂䯄嘖滇埇脘嚔冽蔖蘹施閘㔗嘖滇套悩埿膹䔇噿係埇傖䫘䘵嚘欆柟闼幽認婻埇脘儌滇婻喘亡䘖㔗埇傖䫘準躻噥膹噿係䔇嘷嬉臯䔇昄唚婺髞庖誕臯凹埿膹噿係䔇䘵嚘欆柟㔗
肉劽毐废誂毖婘誂毖嚔哋幋嬉懟婻噿係鄘凹誂毖庖枕誕臯毐废㔗䇽劯凹婴婻噿係幽埏欆柟对陉䔇臯儌䂇劽蕙準嘵潊誂毖臯㔗認䓉蕫劽敘橬助嚘媕啹婺懟婻噿係鄘埻䫘欆柟婔渇㔗襕挗䔇毐废準黴埇傖锔誺滯䇞䔇毐废準黴潡蔙滇嘪䫘誂毖髞庖婪䔇䘵嚘毬䙓敄嘷䔇釺废欆柟噿係㔗
Hash 誂毖饡噽欆柟埿膹䔇噿係幽䫘誂毖䔇庖枕嘩婺昼彖髞庖媹蘘誕噖婔婻 Hash 臘䇽劯欆柟噥膹䔇噿係幽儖欆彄䔇懟臯䫘嘩昼彖髞庖準傖垔嘉臘麯对陉䔇臯㔗
套悩昖臵麯䔇噿係崔庯婴婻橔劯䔇䂷悩媙釂锔誺婔婻誂毖準黴湏傺䆋懟婻準黴橬婴婻膷噖㔗蓇彐単演昖婉劯䔇誂毖釺废埇脘欆庺嚔體橔償䔇㔗
垯潊䔇昖臵湏䫌凹嘺䇔噿係䔇釺废潡蔙䘵嚘欆柟䂇潊幽湹扞驔襕媹婪啯喖冻䯇㔕肉劽㔕傖埪 Hash 誂毖誗䗹媹婪傂嘘驔襕䔇膙媷準黴懫套毐废誗䗹潡蔙蕔镖庘昄螇䞖誗䗹京㔗崓崔昄認底蓇彐誗䗹䌂傋鄘橬鵺崡䔇啔锬拷(檕嚄闼底婉严劽毺垔婄儫溇傽䔇臯)启檘嘌(嘺庯䂍庺䔇庖枕昄唚螇䞖婔婻昆䫘庺䔇庖枕镖幘儌滇婘驔襕施螇䞖湺麟臘膆嚟)㔗蓇彐単䔇婔婻蘼傂滇傯 WHERE 床埖婺鍇媹锬拷溇傽傖埪婺蓇彐湏橔劽锗䔇誗䗹螇䞖欔驔襕䔇膷庺臘膆嚟㔗