Microsoft SQL Server Тышкы сыры түзүү үчүн эмне кылыш керек?

маалыматтар базалары үчүн маанилүү түшүнүктөрдүн бири базасы столдор ортосундагы мамилелерди түзүү болуп саналат. Бул мамилелер бир нече столдор сакталган маалыматтарды байлоо жана натыйжалуу ыкмада аны алуу механизмин камсыз кылат. Эки ортосундагы байланышты түзүү максатында, сиз көрсөтүлүүгө тийиш чет баскычын дагы бир столдо бир тилке маалымдама бир столго.

Базасы Tables жана мамилелер

Сиз буга чейин эле маалымат базалары бар экенин билиш үчүн , жөн гана столдору А сиз буга чейин бир да тийиши мүмкүн: эмне үчүн окшош, электрондук жадыбал программасы , мисалы, Microsoft Excel сыяктуу. Чынында эле, сен да, маалымат базасын түзүү үчүн Excel электрондук жадыбалды алмаштырууга мүмкүн. Базалары Электрондук жадыбалдар четтёёбъз кайда Бирок, аны куруп келгенде болгон күчтүү мамилелерди столдор ортолорунда.

Мисалы, адам ресурстарын маалыматты көз салуу үчүн компания тарабынан пайдаланылуучу маалымат базасы карап көрөлү. Бул маалымат базасы компаниянын кызматкерлери ар бир мүчөсү үчүн төмөнкү маалыматтарды камтыйт кызматкерлери аталган дасторкон болушу мүмкүн:

Бул мисалда, кызматкер ID алар базасына кошулганда ар бир кызматкер үчүн дайындалган бир уникалдуу түзүлгөн бүтүн болуп саналат. орду ID компаниянын кызматкердин абалын маалымат үчүн колдонулган иш коду саналат. Бул схема-жылы, бир кызматкер бир гана орду болушу мүмкүн, бирок ал бир нече жолу (же жок) кызматкерлери ар бир кызмат ордун ээлөөгө болот. Мисалы, "Кассир" ээлеген кызматкерлердин жүздөгөн болушу мүмкүн.

маалымат базасы, ошондой эле ар бир кызмат орду жөнүндө төмөнкүдөй кошумча маалыматтарды алуу менен кызмат орундарынын ар бир дасторкон болушу мүмкүн:

Бул стол Кызматы ID талаасы кызматкерлери столдун жумушчу ID талаасына окшош - ал орду базасына кошо учурда түзүлгөн бир уникалдуу түзүлгөн бүтүн болуп саналат.

Биз базасында кызматкерлердин тизмеси жулуп барып, ал ар бир адамдын аты-жөнү жана алардын аталышы талап кылууга табигый болот. Бирок, бул маалыматтарды бир нече базасы столдор сакталат, андыктан бир гана столдор ортолорунда болгон мамиле талап кылган суроо кошулсун колдонуп түшүрүлөт болот.

Сиз үстөлдөргө түзүлүшүн карасак, мамилесин аныктаган талаа, балким, ачык эле көрүнүп турат - Кызматы ID талаасы. Ар бир кызматкер бир гана орду болот жана орду Positions столдун тиешелүү киргенден тартып Кызматы ID, анын ичинде аныкталган. Болуу менен бирге негизги ачкыч Positions үстөлгө үчүн, мисалы, Кызматы ID талаасы да Positions столго кызматкерлери столдо бир ачкыч болуп саналат. Берилиштер базасына бул жер бир нече столдор маалымат байланыштырып, пайдалануу жана маалыматтар базасын ар кандай өзгөртүүлөр жана толуктоолор камсыз кылуу үчүн мындан ары да камсыз кыла алат referential бүтүндүгүн .

Эгер чет өлкөлүк экенин кийин, андан ары өтүп, кийинки суроого туура колдонуп базасына керектүү маалыматтарды чыгарып алышы мүмкүн:

SELECT FirstName, LastName, кызматкерлери, ички ЧЕЙИН аты орундарга кошулсун Employees.PositionID = Positions.PositionID

Түзүү SQL Server Тышкы сыры

Негизи, жогорудагы сыяктуу сурамдарын аткара албай так мамилесин аныктоо үчүн керек. Бирок, сиз чет негизги чектеме менен мамилесин аныктоого ачык болсо, анда маалымат базасы үчүн кээ бир кесиптик ишти аткара алат:

Бул жерде сиз SQL Server чет ачкычын түзүү кантип эле:

МАЗМУНУ кызматкерлери ачкыч КОШУУ өзгөртүүгө (PositionID) кызматтарды АдАБияТТАР (PositionID)

Сиз пунктту кошуп, дасторкон түзүп жатканда, ошондой эле чет өлкөлүк ачкычын түзүү мүмкүн:

ЧЕТ НЕГИЗГИ билүү Positions (PositionID)

чет өлкөлүк негизги колонна үчүн бардык мамычаларды бөлүп аныктоо аягына чейин.