Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Научете дизайн на база данни със SQL Server Management Studio (SSMS) – част 2

Това е втората част от поредицата, фокусирана върху използването на SQL Server Management Studio. Ще научите основните концепции и проблеми при проектирането на база данни и ще получите инструкции за проектиране на проста SQL база данни със SSMS (SQL Server Management Studio).

Предварителни условия

  1. Изданието SQL Server 2016/2017/2019 Express/Developer е инсталирано.
  2. Последната версия на SSMS (SQL Server Management Studio) е инсталирана.
  3. Читателите имат основни познания за SQL бази данни и горните инструменти.
  4. Основните концепции за проектиране на база данни са ясни.
  5. Читателите са запознати със сценария на проектиране студент-инструктор, обсъден в част 1.

Моля, вижте Научете дизайн на база данни със SQL Server Management Studio SSMS, част 1 за повече информация относно горните изисквания.

Проектиране на база данни студент-инструктор с SSMS

Започваме да създаваме нашата проста SQL база данни с помощта на SSMS. Въпреки това е по-добре да имаме обобщение на планираната база данни, преди да започнем да я проектираме.

Резюме на базата данни студент-инструктор

Говорихме за проста база данни, състояща се от следните три таблици:

  1. Студент . Тази таблица съдържа записи, принадлежащи на ученици.
  2. Инструктор . Тази таблица съхранява информация за всички инструктори.
  3. Студент-инструктор . Това ни казва кой инструктор е назначен на кой ученик.

Важно: повече от един ученик може да бъде назначен за инструктор и повече от един инструктор може да бъде назначен на ученик (за различни предмети).

С други думи, много студенти могат да имат много инструктори.

Замяна на таблицата студент-инструктор с таблицата на курса

Нека леко прецизираме базата данни студент-инструктор – преименуваме таблицата студент-инструктор с таблица за курсове.

По този начин е по-лесно да се разбере, че всеки курс може да има няколко студенти и всеки инструктор може да има няколко студенти за един и същи курс.

Планираме следните колони за тези таблици:

  1. Студент:StudentId, Name.
  2. Инструктор:InstructorId, Name.
  3. Курс:CouseId, Name, StudentId, InstructorId.

Стартирайте SSMS (SQL Server Management Studio)

Въведете SSMS в полето за търсене на Windows и щракнете върху него в списъка с резултати, за да стартирате софтуера:

Имайте предвид, че ще видите версията, която сте инсталирали. В нашия случай това е SSMS (SQL Server Management Studio) версия 18.0.

Свържете се с SQL Server Database Engine

В Object Explorer прозорец, щракнете върху Свързване , след което изберете Database Engine :

Изберете името на сървъра (името на SQL сървъра, който сте инсталирали на вашето устройство). Свържете се с Database Engine въз основа на вашите настройки по подразбиране. В нашия случай използваме режима за удостоверяване на Windows:

Създайте нова SQL база данни StudentInstructor

След като се свържете, щракнете с десния бутон върху Бази данни възел в Object Explorer и щракнете върху Нова база данни... както е показано по-долу:

Въведете името на базата данни StudentInstructor . Кликнете върху OK, оставяйки настройките по подразбиране, освен ако не трябва да ги промените:

Базата данни трябва да бъде създадена сега.

Разгънете същите Бази данни възел, за да го намерите:

Създайте студентска маса

Сега трябва да създадем таблиците в базата данни StudentInstructor.

Разгънете StudentInstructor възел на базата данни:щракнете върху него и след това щракнете с десния бутон върху Таблици.

Отидете на Ново -> Таблица… както следва:

Ще добавим колони към таблицата една по една. Започваме с StudentId .

Въведете StudentId име на колона и изберете int Тип данни, тъй като ще бъде числов (само с числа):

Задаване на първичен ключ

StudentId колоната също ще бъде първичен ключ на таблицата. Това ще ни помогне да идентифицираме ученик (ред/запис) уникално.

Щракнете с десния бутон върху стрелката, сочеща StudentId колона и кликнете върху Задаване на първичен ключ :

Добавяне на самоличност към първичния ключ (StudentId)

Идентичността, зададена на колона, автоматично увеличава стойността си, когато се вмъкнат нови записи. Това е като сериен номер, който се увеличава с всеки нов запис.

Ако не настроим колоната с първичен ключ като колона за идентичност, ръчно добавяме идентификатора за всеки нов запис. Това е добра идея да го настроите.

Например първият запис, вмъкнат в таблицата на Student, ще има автоматичен идентификатор 1, а следващият ще бъде StudentId 2 и т.н. Това е, ако настроим самоличността.

Превъртете надолу Свойства на колона прозорец веднъж StudentId колоната с първичен ключ се избира, докато не намерите Спецификация на самоличността собственост.

Задайте спецификацията на самоличността, както следва (започвайки с е Идентичност) :

Спецификация на самоличността :Да
(е Идентичност) :Да
Увеличение на самоличността :1
Семена за самоличност :1

Добавете колона Име към таблицата на учениците

След това добавете друга колона – Име до масата. Използвайте varchar(45) Тип данни и махнете отметката от Разрешаване на нули както следва:

Не забравяйте, че VARCHAR(45) представлява символните данни (тип) до 45 знака, които да се съхраняват в колоната (Име). Когато премахнем отметката от Разрешаване на нула , трябва да предоставим тази стойност на колоната, за да запазим Студент запис.

Запазете таблицата (ученик)

Най-важната стъпка е да запазите промените си. В нашия случай ние запазваме новосъздадената таблица, като просто щракнем върху Запазване икона на диск в лентата с инструменти или чрез клавишната комбинация CTRL+S .

Въведете името на таблицата – Студент – когато го записвате:

Преглед на таблицата на учениците (Object Explorer)

След като таблицата бъде запазена успешно, разгънете Таблиците възел на StudentInstructor база данни, за да намерите новосъздадената таблица:

Създайте таблица на инструктори с InstrutorId и колони с имена

По същия начин щракнете с десния бутон върху Таблици възел отново. Този път създайте нова таблица, наречена Инструктор .

След това добавете нова колона, наречена InstructorId навх тип данни и го задайте като първичен ключ, както е показано по-долу:

Следващата стъпка е добавянето на Идентичност към колоната InstructorId :

След това добавете Име колона от VARCHAR(45) тип данни на Инструктор Таблица и не позволявайте нулеви стойности за тази колона, точно както за Име колона на Студент таблица:

Запазване и преглед на таблица с инструктори (Object Explorer)

Запазете таблицата, като натиснете CTRL+S пряк път или щракване върху иконата Запиши. Наименувайте таблицата като Инструктор .

Щракнете с десния бутон върху Таблици възел под StudentInstructor база данни и щракнете върху Опресняване за да видите и двете таблици сега:

Създайте таблицата на курса с CourseId първичен ключ колона с идентичност

Трябва да добавим още една таблица към базата данни – Курсът таблица, която ще съдържа идентификатори от двете таблици за студенти и инструктори. Ще има връзка много към много (много студенти могат да бъдат разпределени към много инструктори, според нашите изисквания).

Създайте нова таблица Курс с CourseId първичен ключ:

Добавете самоличност към колоната по същия начин, по който направихме за StudentId и InstructorId колони.

Добавяне на колони Име, StudentId и CourseId

След това добавете Име колона от тип VARCHAR(45) към Курса таблица, последвана от добавяне на StudentId и CourseId колони от int тип данни:

Не забравяйте да премахнете отметката от Разрешаване на нули за да се гарантира, че запис няма да бъде запазен без въвеждане на тези стойности на колоните.

По този начин гарантираме, че a Курс трябва да има ученик и инструктор преди да може да бъде запазен в базата данни. На всичкото отгоре Студентът и Инструктор трябва да съществува в оригиналните им таблици.

Запазване и бърза проверка

Запазете таблицата и името е като Курс:

И накрая, Опреснете всички таблици и прегледайте новосъздадената таблица заедно с други в Object Explorer :

Добавете всички таблици към диаграмата на базата данни

Сега трябва да създадем връзка между таблиците, така че и двете Студентски и Инструктор таблиците са свързани към Курса таблица чрез техните първични ключове.

Например StudentId вСтудента таблицата е свързана сStudentId в Курса маса. По същия начин, InstructorId в Инструктор таблицата е свързана с InstructorId в Курса таблица.

Можем да го постигнем с диаграмата на базата данни.

Отидете на StudentInstructor база данни в Object Explorer и щракнете с десния бутон върху Диаграми на базата данни -> Нова диаграма на базата данни :

Кликнете върху Да :

Използвайте CTRL ключ, за да изберете всички съществуващи таблици и да ги добавите към диаграмата на базата данни :

Вижте диаграмата на базата данни и пренаредете таблиците (щракнете върху таблицата и я преместете), за да направите Курс стойка за маса в средата, между устудента и Инструктор таблици:

Свържете студентската маса с таблицата на курса

Трябва да създадем връзка между Студент и Курс като свържете StudentId в Студентски таблица с StudentId колона в Курс таблица.

Плъзнете ключа StudentId и го пуснете в колоната StudentId в Таблицата на курсовете . Щракнете върху OK :

Това ще създаде отношение с външен ключ между таблиците за курсове и студенти – гарантира, че само онези студенти, записани в таблицата на студентите, ще бъдат запазени в таблицата на курса:

Свържете таблицата с инструктори с таблицата на курса

По същия начин трябва да свържете Инструктора таблица сКурса таблица, така че InstructorId колона първичен ключ на Инструктор таблицата ще бъде предадена на InstructorId в Курса таблица.

По този начин гарантираме, че InstructorId първичният ключ съществува като външен ключ в Курса маса. Това означава, че можем да съхраняваме всеки инструктор ред от Курса таблица само ако този инструктор съществува в оригиналния Инструктор маса. По този начин поддържаме последователността и целостта на базата данни съгласно стандартната практика.

Запазете диаграмата на базата данни

Накрая запазете диаграмата на базата данни, като щракнете върху Запазване икона в лентата с инструменти:

Добавяне на данни към студентската таблица

Време е да добавите някои данни към създадените таблици, започвайки от таблицата Student. Ще добавим три записа на ученици към таблицата.

Щракнете с десния бутон върху Студент таблица и кликнете върху Редактиране на най-добрите 200 реда (не се притеснявайте, няма да редактирате 200 реда):

Въведете следните имена и щракнете върху Enter за да запазите тези записи:

След това затворете прозореца – щракнете върху кръста горе вдясно или натиснете CTRL+F4.

Моля, имайте предвид, че StudentIds 1,2 и 3 се разпределят автоматично към записите. Ще ги използваме по-късно в курса таблица.

Добавяне на данни към таблицата с инструктори

Сега трябва да добавим двама инструктори на име Мартин и Асад . По този начин добавете следните данни към Инструктор таблица:

По същия начин, имайте предвид тези идентификатори 1 и 2. Засега можете да затворите този прозорец.

Добавяне на данни към таблицата на курса

Имаме студенти от едната страна и инструктори от другата страна. Но можем да добавим само онези студенти, които вече са на масата за студенти, и същото важи и за инструкторите.

Нека запишем и тримата студенти в Бази данни курс и назначете инструктор за този Курс също така:

Преглед на съдържанието на курса

За да видите данните, щракнете с десния бутон върху Курс таблица-> Изберете най-добрите 1000 реда:

Честито! Успешно се научихте да проектирате проста база данни със SSMS (SQL Server Management Studio). Наред с това се обучаваме да вмъкваме нови записи и да преглеждаме вмъкнатите данни.

Неща за правене

Сега, когато можете да проектирате база данни със SSMS, опитайте следните неща, за да подобрите допълнително уменията си:

  1. Опитайте да прегледате съдържанието на таблиците за ученици и инструктори.
  2. Опитайте да добавите друг курс, наречен Бизнес разузнаване и запишете всичките трима студенти в този курс, заедно с назначаването на инструктора Асад (InstructorId:2)
  3. Не забравяйте, че можете да подобрите действителния дизайн на базата данни от статията чрез следните неща:
    • Преименуване на Курса таблица като Класа маса;
    • Премахване на Име колона от Клас маса;
    • Замяна на CourseId с ClassId колона;
    • Създаване на отделен Курс таблица с колоните CourseId и Name, точно както за таблиците Student и Instructor;
    • Добавяне на нов CourseId колона към таблицата на класовете и свързване CourseId на курса Таблица с CourseId колона в Клас таблица, точно като студент и инструктор.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Как да четете и анализирате планове за изпълнение на SQL Server

  2. ПРОВЕРЕТЕ ОГРАНИЧЕНИЕТО на множество колони

  3. Избройте всички колони за идентичност в база данни на SQL Server:sys.identity_columns

  4. Как да актуализирате редове с произволна дата

  5. Записване на ВСИЧКИ заявки в база данни на SQL Server 2008 Express?