маалыматтар базалары үчүн маанилүү түшүнүктөрдүн бири базасы столдор ортосундагы мамилелерди түзүү болуп саналат. Бул мамилелер бир нече столдор сакталган маалыматтарды байлоо жана натыйжалуу ыкмада аны алуу механизмин камсыз кылат. Эки ортосундагы байланышты түзүү максатында, сиз көрсөтүлүүгө тийиш чет баскычын дагы бир столдо бир тилке маалымдама бир столго.
Базасы Tables жана мамилелер
Сиз буга чейин эле маалымат базалары бар экенин билиш үчүн , жөн гана столдору А сиз буга чейин бир да тийиши мүмкүн: эмне үчүн окшош, электрондук жадыбал программасы , мисалы, Microsoft Excel сыяктуу. Чынында эле, сен да, маалымат базасын түзүү үчүн Excel электрондук жадыбалды алмаштырууга мүмкүн. Базалары Электрондук жадыбалдар четтёёбъз кайда Бирок, аны куруп келгенде болгон күчтүү мамилелерди столдор ортолорунда.
Мисалы, адам ресурстарын маалыматты көз салуу үчүн компания тарабынан пайдаланылуучу маалымат базасы карап көрөлү. Бул маалымат базасы компаниянын кызматкерлери ар бир мүчөсү үчүн төмөнкү маалыматтарды камтыйт кызматкерлери аталган дасторкон болушу мүмкүн:
- Инспектор ID
- Биринчи аты
- Акыркы Аты
- OfficePhone
- HomePhone
- PositionID
Бул мисалда, кызматкер ID алар базасына кошулганда ар бир кызматкер үчүн дайындалган бир уникалдуу түзүлгөн бүтүн болуп саналат. орду ID компаниянын кызматкердин абалын маалымат үчүн колдонулган иш коду саналат. Бул схема-жылы, бир кызматкер бир гана орду болушу мүмкүн, бирок ал бир нече жолу (же жок) кызматкерлери ар бир кызмат ордун ээлөөгө болот. Мисалы, "Кассир" ээлеген кызматкерлердин жүздөгөн болушу мүмкүн.
маалымат базасы, ошондой эле ар бир кызмат орду жөнүндө төмөнкүдөй кошумча маалыматтарды алуу менен кызмат орундарынын ар бир дасторкон болушу мүмкүн:
- PositionID
- наам
- JobLevel
- SkillCategory
- орду
Бул стол Кызматы ID талаасы кызматкерлери столдун жумушчу ID талаасына окшош - ал орду базасына кошо учурда түзүлгөн бир уникалдуу түзүлгөн бүтүн болуп саналат.
Биз базасында кызматкерлердин тизмеси жулуп барып, ал ар бир адамдын аты-жөнү жана алардын аталышы талап кылууга табигый болот. Бирок, бул маалыматтарды бир нече базасы столдор сакталат, андыктан бир гана столдор ортолорунда болгон мамиле талап кылган суроо кошулсун колдонуп түшүрүлөт болот.
Сиз үстөлдөргө түзүлүшүн карасак, мамилесин аныктаган талаа, балким, ачык эле көрүнүп турат - Кызматы ID талаасы. Ар бир кызматкер бир гана орду болот жана орду Positions столдун тиешелүү киргенден тартып Кызматы ID, анын ичинде аныкталган. Болуу менен бирге негизги ачкыч Positions үстөлгө үчүн, мисалы, Кызматы ID талаасы да Positions столго кызматкерлери столдо бир ачкыч болуп саналат. Берилиштер базасына бул жер бир нече столдор маалымат байланыштырып, пайдалануу жана маалыматтар базасын ар кандай өзгөртүүлөр жана толуктоолор камсыз кылуу үчүн мындан ары да камсыз кыла алат referential бүтүндүгүн .
Эгер чет өлкөлүк экенин кийин, андан ары өтүп, кийинки суроого туура колдонуп базасына керектүү маалыматтарды чыгарып алышы мүмкүн:
Түзүү SQL Server Тышкы сыры
Негизи, жогорудагы сыяктуу сурамдарын аткара албай так мамилесин аныктоо үчүн керек. Бирок, сиз чет негизги чектеме менен мамилесин аныктоого ачык болсо, анда маалымат базасы үчүн кээ бир кесиптик ишти аткара алат:
- Сиз кызматкерлери столдо бир жаңы рекорд кошулганда, базасына кирүү Кызматы ID бир экендигин камсыз кылат жарактуу негизги ачкыч Positions столго.
- Сиз Positions үстөлдүн Кызматы ID өзгөртө турган болсо, базасына ырааттуулугун сактап кызматкерлери столго зарыл өзгөрүүлөрдү жасоого болот.
- берилиштер базасына кызматкер жазууларды тиешелүү же каскад тиешелүү бардык кызматкерлердин жок аткаруу менен кызмат кылуу үчүн баш тартып биринин орду стол ордуна бир өчүрүү таасиринен коргойт.
Бул жерде сиз SQL Server чет ачкычын түзүү кантип эле:
МАЗМУНУ кызматкерлери ачкыч КОШУУ өзгөртүүгө (PositionID) кызматтарды АдАБияТТАР (PositionID)Сиз пунктту кошуп, дасторкон түзүп жатканда, ошондой эле чет өлкөлүк ачкычын түзүү мүмкүн:
ЧЕТ НЕГИЗГИ билүү Positions (PositionID)чет өлкөлүк негизги колонна үчүн бардык мамычаларды бөлүп аныктоо аягына чейин.