W kategoriach bazy danych schemat (wymawiane „skee-muh” lub „skee-mah”) to organizacja i struktura bazy danych. Oba schematy i schemat mogą być używane w liczbie mnogiej.
Schemat zawiera obiekty schematu, którymi mogą być tabele, kolumny, typy danych, widoki, procedury składowane, relacje, klucze podstawowe, klucze obce itp.
Schemat bazy danych można przedstawić na diagramie wizualnym, który przedstawia obiekty bazy danych i ich wzajemne relacje.
Powyżej znajduje się prosty przykład diagramu schematu. Pokazuje trzy tabele wraz z ich typami danych, relacjami między tabelami, a także ich kluczami podstawowymi i kluczami obcymi.
Oto bardziej złożony przykład schematu bazy danych:
W tym przypadku diagram schematu został podzielony na cztery sekcje:
- Dane klienta :Dane dotyczące klientów, takie jak ich imię i nazwisko, adres itp.
- Biznes :Dane wymagane do prowadzenia działalności, takie jak personel, lokalizacje sklepów, szczegóły płatności itp.
- Zapasy :Szczegóły dotyczące wszystkich produktów. W tym przypadku produktami są filmy, więc zawiera dane, takie jak tytuł filmu, jego kategoria, aktorzy itp.
- Wyświetlenia :Specjalny widok na dane wykorzystywane do oceny.
Patrząc na te diagramy schematów, możemy przejść dalej i utworzyć bazę danych. W rzeczywistości MySQL Workbench umożliwia wygenerowanie CREATE TABLE
skrypt prosto z diagramu. Następnie możesz użyć skryptu do utworzenia bazy danych. Możesz nawet przekształcić bazę danych w diagram.
Czy schemat i baza danych to to samo?
Jeśli chodzi o bazy danych, jest dużo zamieszania na temat schematów. Często pojawia się pytanie, czy istnieje różnica między schematami a bazami danych, a jeśli tak, to jaka jest różnica.
Zależy od dostawcy
Jednym z powodów tego zamieszania jest to, że systemy baz danych mają tendencję do podejścia do schematów na swój własny sposób.
- Dokumentacja MySQL stwierdza, że fizycznie
schemat jest synonimem bazy danych
. Dlatego schemat i baza danych to to samo . - Jednak dokumentacja Oracle Database stwierdza, że niektóre obiekty mogą być przechowywane w bazie danych, ale nie w schemacie. Dlatego schemat i baza danych to dwie różne rzeczy .
- I zgodnie z tym artykułem technicznym dotyczącym SQL Server, schemat jest oddzielną jednostką wewnątrz bazy danych. Są to więc dwie różne rzeczy .
Tak więc, w zależności od używanego RDBMS, schematy i bazy danych mogą, ale nie muszą być tym samym.
A co ze standardem SQL?
Standard ISO/IEC 9075-1 SQL definiuje schemat jako trwały, nazwany zbiór deskryptorów
.
Jeśli byłeś wcześniej zdezorientowany, mam nadzieję, że nie tylko go pogorszyłem…
Szerokie znaczenie
Innym powodem zamieszania jest prawdopodobnie fakt, że termin schema ma tak szerokie znaczenie. Ma różne konotacje w różnych kontekstach.
Schemat słów pochodzi od greckiego słowa skhēma , co oznacza formularz , figura , kształt lub plan .
Schemat jest używany w psychologii do opisania zorganizowanego wzorca myślenia lub zachowania, który organizuje kategorie informacji i relacje między nimi.
Przed zaprojektowaniem bazy danych musimy również przyjrzeć się kategoriom informacji i relacjom między nimi. Musimy stworzyć koncepcyjny schemat zanim zaczniemy od fizycznego schemat w DBMS.
W rozwoju oprogramowania, omawiając schematy, można mówić o koncepcji schematy, fizyczne schematy, wewnętrzne schematy, zewnętrzne schematy, logiczne schematy itp. Każdy z nich ma swoje specyficzne znaczenie.
Definicje schematów przez DBMS
Oto krótka definicja schematu z trzech wiodących systemów baz danych:
MySQL
Koncepcyjnie schemat to zestaw powiązanych ze sobą obiektów bazy danych, takich jak tabele, kolumny tabel, typy danych kolumn, indeksy, klucze obce i tak dalej.
….
W MySQL fizycznie schemat jest synonimem bazy danych . Możesz zastąpić słowo kluczowe SCHEMA
zamiast DATABASE
w składni MySQL SQL, na przykład przy użyciu CREATE SCHEMA
zamiast CREATE DATABASE
.
Źródło:„Słowniczek MySQL”. Podręcznik MySQL 5.7. MySQL. Pobrano 6 czerwca 2016.
Serwer SQL
Nazwy tabel, pól, typów danych oraz kluczy podstawowych i obcych bazy danych.
"Słowniczek". Dokumentacja techniczna SQL Server 2016. Sieć programistów Microsoft. Pobrano 6 czerwca 2016.
Baza danych Oracle
System schematów bazy danych Oracle różni się znacznie od innych systemów. Schemat Oracle jest bardzo powiązany z użytkownikiem bazy danych.
Schemat to zbiór logicznych struktur danych lub obiektów schematu. Właścicielem schematu jest użytkownik bazy danych i ma taką samą nazwę jak ten użytkownik. Każdy użytkownik posiada jeden schemat.
Źródło:„Obiekty bazy danych”. Dokumentacja online bazy danych Oracle 12c, wydanie 1 (12,1). Centrum pomocy Oracle. Pobrano 6 czerwca 2016.
Ten artykuł na temat definicji schematów DBMS zawiera więcej szczegółów.
Tworzenie schematów
Pomimo różnic w definiowaniu schematów, każdy z trzech wyżej wymienionych DBMS obsługuje CREATE SCHEMA
oświadczenie.
I na tym kończy się podobieństwo.
MySQL
W MySQL, CREATE SCHEMA
tworzy bazę danych.
Dzieje się tak, ponieważ CREATE SCHEMA
jest synonimem CREATE DATABASE
. Innymi słowy, możesz użyć CREATE SCHEMA
lub CREATE DATABASE
zrobić to samo.
Baza danych Oracle
W bazie danych Oracle CREATE SCHEMA
instrukcja nie tworzy schematu. Dzieje się tak, ponieważ schemat jest już utworzony dla każdego użytkownika bazy danych.
W Oracle CREATE USER
instrukcja tworzy schemat.
W Oracle CREATE SCHEMA
instrukcja umożliwia wypełnienie schematu tabelami i widokami oraz nadawanie uprawnień do tych obiektów bez konieczności wydawania wielu instrukcji SQL w wielu transakcjach.
Serwer SQL
W SQL Server CREATE SCHEMA
utworzy schemat o nazwie, którą mu nadasz.
W przeciwieństwie do MySQL, CREATE SCHEMA
instrukcja tworzy schemat, który jest zdefiniowany oddzielnie od bazy danych.
W przeciwieństwie do Oracle, CREATE SCHEMA
instrukcja faktycznie tworzy schemat.
W SQL Server, po utworzeniu schematu, możesz dodać do niego użytkowników i obiekty.
Wniosek
Termin schemat mogą być używane w wielu różnych kontekstach. W kontekście tworzenia schematów w określonym systemie zarządzania bazą danych musisz pracować z tym, jak DBMS definiuje schematy.
A kiedy przełączysz się na nowy DBMS, sprawdź, jak ten system definiuje schematy.