470 likes | 826 Views
Проектиране на релационни бази от данни с Microsoft SQL Server 2005 Management Studio. Теория и практика. Светлин Наков. Национална академия по разработка на софтуер. academy.devbg.org. Съдържание. Национална академия по разработка на софтуер (НАРС) Релационни бази от данни
E N D
Проектиране на релационни бази от данни с Microsoft SQL Server 2005Management Studio Теория и практика Светлин Наков Национална академия по разработка на софтуер academy.devbg.org
Съдържание • Национална академия по разработка на софтуер (НАРС) • Релационни бази от данни • Таблици, първичен ключ, външен ключ, връзки, множественост, E/R диаграми, нормализация • Инструментът SQL Server Management Studio 2005 • Създаване на таблици и връзки • Изграждане на E/R диаграми
За лектора • Светлин Наков • Носител на наградата “Джон Атанасов” на Президента на България • Автор на 3 книги и над 20 статии • 15 години опит с програмирането • 8 от тях професионално • Директор направление обучение в Национална академия по разработка на софтуер • Преподавател във ФМИ на СУ
Национална академия по разработка на софтуер (НАРС)
Какво е НАРС? • Национална академия по разработка на софтуер (НАРС) • Практическо обучение за софтуерни инженери • Курсове за начинаещи и напреднали • Специалности Java и .NET • Гарантирана работа по специалността • Безплатно обучение! • http://academy.devbg.org
НАРС – успешен старт • НАРС ви гарантира успешен старт в кариерата на софтуерен инженер • Работа в престижи софтуерни фирми: • SAP Labs Bulgaria, telerik, Sciant, Rila Solutions, Sirma, Seeburger Informatik, ICB, Stemo, Wohnfinder, Bank Service, Bianor, Siemens, ComSoft и др. • Безплатнообучение! • За контакти: http://academy.devbg.org
Релационни бази от данни Фундаментални концепции
Релационни бази от данни • Релационните бази от данни • Представляват съвкупности от таблици и връзки между тях (релации) • Ползват здрава математическа основа: релационната алгебра • Системи за управление на релационни бази от данни (СУБД, RDBMS) • Дефиниратрелационната схема (таблиците и връзките между тях) • Обработват данните в таблиците: добавяне, търсене, промяна, изтриване
Системи за управление на бази от данни • RDBMS системите се наричат още • сървъри за управление на бази от данни • или просто "Database сървъри" • По-известни RDBMS сървъри: • Microsoft SQL Server • Oracle Database • IBM DB2 • PostgreSQL • MySQL • Borland Interbase
Таблици и връзки Основни понятия
Таблици • Таблиците представляват съвкупност от стойности, подредени в редове и колони. Пример (таблица Person): • Редовете имат еднаква структура • Колоните имат име и тип (число, символен низ, дата или др.)
Схема на таблица • Схема на таблица е наредена последователност от описания на колони (име и тип) • Например таблицатаPersonима следната схема: Person ( Id:число, Name: символен низ, Family: символен низ, Employer: символен низ )
Типове данни в SQL Server 2005 • Числови • bit (1-bit), integer (32-bit), bigint (64-bit) • float, real, numeric(scale, precision) • money – за парични пресмятания • Текстови • char(size) – фиксирана дължина • varchar(size) – символен низ • nvarchar(size) – Unicode низ • text, ntext – дълъг символен низ
Типове данни в SQL Server 2005 • Бинарни данни • varbinary(size) – редица от байтове • image – бинарен блок до 1 GB • Дати и часове • datetime – дата и час от 1.1.1753 г. до 31.12. 9999 г. с прецизност 1/300 сек. • smalldatetime – дата с точност 1 минута • Други • timestamp– автоматична версия на ред
Първичен ключ • Първичният ключ (primary key) еколона от таблицата, която уникално идентифицира даден неин ред • Два записа (реда) са различни когато са различни първичните им ключове • Първичният ключ може да е съвкупност от няколко колони Person Primary key
Връзки (релации) • Връзките между таблиците се базират на взаимоотношения primary key / foreign key Foreign key Primary key Primary key Town Country
Видове връзки (релации) • Външният ключ (foreign key) е номер на запис (primary key) в друга таблица • Връзките спестяват повтарянето на информация • В примера името на държавата не се повтаря за всеки град • Връзките имат множественост (multiplicity): • 1 x много – държава / градове • много x много – студент / учебен курс • 1 x 1 – например човек ↔ студент
Множественост на връзките (1 x n) • Връзка 1 x много (или много x1) • 1 запис от първата таблица съответства на много записи от втората таблица • Използва се много често Town Country
Множественост на връзките (n x n) • Връзка много x много • Един запис от първата таблица съответства на много записи от втората таблица и обратното • Реализира се чрез междинна таблица StudentCourse Student Course
Множественост на връзките (n x n) • Връзка много x много с entity таблица Enrollment Student Course
Множественост на връзките (1 x 1) • Връзка 1 x 1 • 1 запис от едната таблица съответства на точно 1 запис от другата таблица • Моделира наследяване на таблици Primary & foreign key in the same time Primary key Person Student
Представяне на дървовидни данни • Как представяме дървета и графи?
Авторелации(Self-relationships) • Връзките primary/foreign key може да са в една и съща таблица • Пример: служителите в една фирма имат началник, който също е служител Primary key Foreign key Employees
Проектиране на релационни бази от данни Фундаментални концепции
Идентификация на същностите (entities) • Entity таблиците представляват същности (обекти) от реалния свят • Най-често са съществителни в текста на заданието (спецификацията) • Например: • Същности: студент, курс, град Да се разработи система за съхраняване на информация за студенти, които се обучават в различни курсове. Курсовете се провеждат в различни градове. При регистрация на студент за него се въвежда име, фак. номер, снимка и дата.
Идентификация на колоните в таблиците • Колоните в таблиците са характеристики на същностите • Имат име и тип • Например студентите имат: • Име (текст) • Факултетен номер (число) • Снимка (бинарен блок) • Дата на регистрация (дата)
Идентификация на колоните в таблиците • Колоните са пояснения за същностите в текста на заданието, например: • Студентите имат следните характеристики: • Име, факултетен номер, снимка, дата на регистрация и списък от курсове Да се разработи система за съхраняване на информация за студенти, които се обучават в различни курсове. Курсовете се провеждат в различни градове. При регистрация на студент за него се въвежда име, фак. номер, снимка и дата.
Как да изберем първичен ключ за entity таблиците? • Винаги дефинирайте допълнителна колона за първичния ключ • Не използвайте съществуваща колона (например ЕГН) • Трябва да е число (integer) • Трябва да се обяви като primary key • Използвайте identity в SQL Server • Слагайте първичния ключ като първа колона
Идентификация на връзките (entities) • Връзките са отношения между същностите: • "Студенти се обучават в курсове" – релация много към много • "Курсовете се провеждат в градове" – релация много към едно Да се разработи система за съхраняване на информация за студенти, които се обучават в различни курсове. Курсовете се провеждат в различни градове. При регистрация на студент за него се въвежда име, фак. номер, снимка и дата.
Нормализация • Нормализацията на релационната схема премахва повтарящите се данни • Денормализираните данни съдържат много повторения. Например: Product
Нормализация – пример • Пример за нормализиранасхема: Product Vendor Category Store Town
Релационни схеми и E/R диаграми • Релационна схема на БД наричаме съвкупността от: • Схемите на всички таблици • Връзките между таблиците • Релационната схема описва структурата на БД • Не съдържа данни, а само метаданни • Релационните схеми се изобразяват графично чрез Entity/Relationship диаграми (E/R Diagrams)
E/R диаграми – пример Диаграмата е създадена с Microsoft SQL Server 2005 Management Studio
E/R диаграми – пример Диаграмата е създадена с Microsoft Visio
E/R диаграми – пример Диаграмата е създадена с PLATINUM ERwin
Инструменти за E/R дизайн • E/R диаграмите се създават с инструменти за моделиране на данни (Data Modeling Tools): • SQL Server Management Studio • CASE Studio • Oracle Designer • Microsoft Visio • Computer Associates ERwin • IBM Rational Rose • fabForce DBDesigner (GNU GPL проект с отворен код за Windows и Linux)
Дизайн на DB диаграми с SQLServer 2005Management Studio Демонстрация
Проектиране на релационни бази от данни Въпроси?