По отношение на базата данни, схема (произнася се „ски-мух“ или „ски-мах“) е организацията и структурата на база данни. И двете схеми и схеми може да се използва като форми за множествено число.
Схемата съдържа обекти на схема, които могат да бъдат таблици, колони, типове данни, изгледи, съхранени процедури, връзки, първични ключове, външни ключове и т.н.
Схемата на базата данни може да бъде представена във визуална диаграма, която показва обектите на базата данни и връзката им един с друг.
По-горе е прост пример за схематична диаграма. Той показва три таблици, заедно с техните типове данни, връзки между таблиците, както и техните първични и външни ключове.
Ето по-сложен пример за схема на база данни:
В този случай схемната диаграма е разделена на четири секции:
- Данни за клиенти :Данни, свързани с клиентите, като тяхното име, адрес и т.н.
- Бизнес :Данни, необходими за управление на бизнеса, като персонал, местоположения на магазини, данни за плащане и др.
- Инвентар :Подробности за всички продукти. В този случай продуктите са филми, така че съдържа данни като заглавие на филма, неговата категория, актьори и т.н.
- Прегледи :Специален изглед на данните, използвани за оценки.
Така че, като разгледаме тези схеми, можем да продължим и да създадем база данни. Всъщност MySQL Workbench ви позволява да генерирате CREATE TABLE
скрипт направо от диаграмата. След това можете да използвате скрипта, за да създадете база данни. Можете дори да създадете обратно инженерство на база данни в диаграма.
Схема и база данни едно и също нещо ли са?
Има много объркване относно схемите, когато става въпрос за бази данни. Често възниква въпросът дали има разлика между схеми и бази данни и ако да, каква е разликата.
Зависи от доставчика
Част от причината за объркването е, че системите за бази данни подхождат към схемите по свой собствен начин.
- Документацията на MySQL гласи, че физически
схемата е синоним на база данни
. Следователно схемата и базата данни са едноедно и също нещо . - В документацията на Oracle Database обаче се посочва, че определени обекти могат да се съхраняват в база данни, но не и в схема. Следователно схемата и базата данни са две различни неща .
- И според тази техническа статия на SQL Server, схемата е отделен обект в базата данни. И така, те са две различни неща .
Така че, в зависимост от RDBMS, която използвате, схемите и базите данни може а може и да не са едно и също нещо.
Какво ще кажете за SQL стандарта?
Стандартът ISO/IEC 9075-1 SQL дефинира схема като постоянна, наименувана колекция от дескриптори
.
Ако сте били объркани преди, надявам се, че не съм го влошил просто...
Широко значение
Друга причина за объркването вероятно се дължи на факта, че терминът схема има толкова широко значение. Има различни конотации в различен контекст.
Думата схема произлиза от гръцката дума skhēma , което означава форма , фигура , форма , или планирайте .
Схемата се използва в психологията, за да опише организиран модел на мислене или поведение, който организира категории информация и връзките между тях.
Преди да проектираме база данни, също трябва да разгледаме категориите информация и връзките между тях. Трябва да създадем концептуален схема, преди дори да започнем с физическата схема в СУБД.
При разработката на софтуер, когато се обсъждат схеми, може да се обсъжда концептуално схеми, физически схеми, вътрешни схеми, външни схеми, логически схеми и др. Всяко от тях има свое собствено специфично значение.
Дефиниции на схема от DBMS
Ето кратко определение на схемата от трите водещи системи за бази данни:
MySQL
Концептуално схемата е набор от взаимосвързани обекти на база данни, като таблици, колони на таблици, типове данни на колоните, индекси, външни ключове и т.н.
….
В MySQL, физически, есхема е синоним на база данни . Можете да замените ключовата дума
SCHEMA
вместоDATABASE
в MySQL SQL синтаксис, например с помощта наCREATE SCHEMA
вместоCREATE DATABASE
.
Източник: „MySQL речник“. Справочно ръководство за MySQL 5.7. MySQL. Изтеглено на 6 юни 2016 г.
SQL сървър
Имената на таблици, полета, типове данни и първични и външни ключове на база данни.
"Терминологичен речник". Техническа документация на SQL Server 2016. Мрежа за разработчици на Microsoft. Изтеглено на 6 юни 2016 г.
База данни на Oracle
Схемата на Oracle Database е доста различна от другите системи. Схемата на Oracle е много свързана с потребителя на базата данни.
Схемата е колекция от логически структури от данни или обекти на схема. Една схема е собственост на потребител на база данни и има същото име като този потребител. Всеки потребител притежава една-единствена схема.
Източник: „Обекти на база данни“. Oracle Database Online Documentation 12c Издание 1 (12.1). Помощен център на Oracle. Изтеглено на 6 юни 2016 г.
Тази статия за дефинициите на схеми от СУБД предоставя повече подробности.
Създаване на схеми
Въпреки разликите си в дефинирането на схеми, всяка от трите гореспоменати СУБД поддържа CREATE SCHEMA
изявление.
И това е мястото, където приликата свършва.
MySQL
В MySQL CREATE SCHEMA
създава база данни.
Това е така, защото CREATE SCHEMA
е синоним на CREATE DATABASE
. С други думи, можете да използвате CREATE SCHEMA
или CREATE DATABASE
да направи същото.
База данни на Oracle
В Oracle Database, CREATE SCHEMA
изявлението всъщност не създава схема. Това е така, защото вече е създадена схема с всеки потребител на база данни.
В Oracle CREATE USER
оператор създава схемата.
В Oracle CREATE SCHEMA
изявлението ви позволява да попълвате своята схема с таблици и изгледи и да предоставяте привилегии на тези обекти, без да се налага да издавате множество SQL оператори в множество транзакции.
SQL сървър
В SQL Server, CREATE SCHEMA
ще създаде схема с името, което й дадете.
За разлика от MySQL, CREATE SCHEMA
оператор създава схема, която е дефинирана отделно за базата данни.
За разлика от Oracle, CREATE SCHEMA
оператор всъщност създава схемата.
В SQL Server, след като създадете схемата, можете да добавите потребители и обекти към нея.
Заключение
Терминът схема може да се използва в много различни контексти. В контекста на създаването на схеми в конкретна система за управление на база данни, ще трябва да работите с но тази СУБД дефинира схемите.
И когато преминете към нова СУБД, не забравяйте потърсете как тази система дефинира схемите.