Z hlediska databáze, schéma (vyslovuje se „skee-muh“ nebo „skee-mah“) je organizace a struktura databáze. Obě schémata a schémata lze použít v množném čísle.
Schéma obsahuje objekty schématu, což mohou být tabulky, sloupce, datové typy, pohledy, uložené procedury, vztahy, primární klíče, cizí klíče atd.
Databázové schéma lze znázornit ve vizuálním diagramu, který ukazuje objekty databáze a jejich vzájemný vztah.
Výše je jednoduchý příklad schématu. Zobrazuje tři tabulky spolu s jejich datovými typy, vztahy mezi tabulkami a také jejich primárními a cizími klíči.
Zde je složitější příklad schématu databáze:
V tomto případě je schéma schéma rozděleno do čtyř částí:
- Údaje o zákaznících :Údaje související se zákazníky, jako je jejich jméno, adresa atd
- Obchodní :Údaje potřebné k provozování firmy, jako jsou zaměstnanci, umístění prodejen, platební údaje atd
- Inventář :Podrobnosti o všech produktech. V tomto případě jsou produkty filmy, takže obsahuje údaje, jako je název filmu, jeho kategorie, herci atd.
- Zobrazení :Speciální pohled na data použitá pro hodnocení.
Když se tedy podíváme na tyto schémata, mohli bychom pokračovat a vytvořit databázi. Ve skutečnosti vám MySQL Workbench umožňuje vygenerovat CREATE TABLE
skript přímo z diagramu. Poté můžete pomocí skriptu vytvořit databázi. Databázi můžete dokonce zpětně analyzovat do diagramu.
Je schéma a databáze totéž?
Pokud jde o databáze, existuje mnoho zmatků ohledně schémat. Často vyvstává otázka, zda existuje rozdíl mezi schématy a databázemi, a pokud ano, jaký je rozdíl.
Závisí na prodejci
Částečným důvodem zmatku je, že databázové systémy mají tendenci přistupovat ke schématům svým vlastním způsobem.
- Dokumentace MySQL uvádí, že fyzicky
schéma je synonymem pro databázi
. Proto je schéma a databáze totéž . - Dokumentace k databázi Oracle však uvádí, že určité objekty lze uložit do databáze, ale nikoli do schématu. Proto jsou schéma a databáze dvě různé věci .
- A podle tohoto technického článku o SQL Serveru je schéma samostatnou entitou uvnitř databáze. Jsou to tedy dvě různé věci .
Takže v závislosti na RDBMS, který používáte, schémata a databáze mohou, ale nemusí být totéž.
A co standard SQL?
Standard ISO/IEC 9075-1 SQL definuje schéma jako trvalou, pojmenovanou kolekci deskriptorů
.
Pokud jste byli předtím zmatení, doufám, že jsem to jen nezhoršil…
Široký význam
Dalším důvodem nejasností je pravděpodobně skutečnost, že výraz schéma má tak široký význam. Má různé konotace v různých kontextech.
Slovo schéma pochází z řeckého slova skhēma , což znamená forma , číslo , tvar nebo plánovat .
Schéma se v psychologii používá k popisu organizovaného vzorce myšlení nebo chování, který organizuje kategorie informací a vztahy mezi nimi.
Před návrhem databáze se také musíme podívat na kategorie informací a vztahy mezi nimi. Musíme vytvořit koncepční ještě předtím, než začneme s fyzickým schéma v rámci DBMS.
Při vývoji softwaru, když se diskutuje o schématech, lze diskutovat o koncepčních schémata, fyzická schémata, interní schémata, externí schémata, logická schémata atd. Každý z nich má svůj vlastní specifický význam.
Definice schémat od DBMS
Zde je rychlá definice schématu ze tří předních databázových systémů:
MySQL
Koncepčně je schéma množina vzájemně propojených databázových objektů, jako jsou tabulky, sloupce tabulek, datové typy sloupců, indexy, cizí klíče atd.
….
V MySQL je fyzicky schéma je synonymem pro databázi . Můžete nahradit klíčové slovo
SCHEMA
místoDATABASE
v MySQL SQL syntaxi, například pomocíCREATE SCHEMA
místoCREATE DATABASE
.
Zdroj: „MySQL Glossary“. Referenční příručka MySQL 5.7. MySQL. Získáno 6. června 2016.
SQL Server
Názvy tabulek, polí, datových typů a primárních a cizích klíčů databáze.
"Glosář". Technická dokumentace SQL Server 2016. Microsoft Developer Network. Získáno 6. června 2016.
Databáze Oracle
Systém schémat Oracle Database je zcela odlišný od ostatních systémů. Schéma Oracle je velmi svázáno s uživatelem databáze.
Schéma je sbírka logických struktur dat nebo objektů schématu. Schéma je vlastněno uživatelem databáze a má stejné jméno jako tento uživatel. Každý uživatel vlastní jedno schéma.
Zdroj: „Objekty databáze“. Oracle Database Online Documentation 12c Release 1 (12.1). Centrum nápovědy Oracle. Získáno 6. června 2016.
Tento článek o definicích schémat od DBMS poskytuje více podrobností.
Vytváření schémat
Navzdory rozdílům v definování schémat každý ze tří výše uvedených DBMS podporuje CREATE SCHEMA
prohlášení.
A tím podobnost končí.
MySQL
V MySQL CREATE SCHEMA
vytvoří databázi.
Důvodem je CREATE SCHEMA
je synonymem pro CREATE DATABASE
. Jinými slovy, můžete použít CREATE SCHEMA
nebo CREATE DATABASE
udělat to samé.
Databáze Oracle
V databázi Oracle CREATE SCHEMA
příkaz ve skutečnosti nevytváří schéma. Je to proto, že schéma je již vytvořeno s každým uživatelem databáze.
V Oracle je to CREATE USER
příkaz vytvoří schéma.
V Oracle CREATE SCHEMA
příkaz umožňuje naplnit vaše schéma tabulkami a pohledy a udělit těmto objektům oprávnění, aniž byste museli zadávat více příkazů SQL ve více transakcích.
SQL Server
V SQL Server CREATE SCHEMA
vytvoří schéma podle názvu, který mu zadáte.
Na rozdíl od MySQL, CREATE SCHEMA
vytvoří schéma, které je definováno samostatně k databázi.
Na rozdíl od Oracle, CREATE SCHEMA
příkaz ve skutečnosti vytváří schéma.
V SQL Server, jakmile vytvoříte schéma, můžete do něj přidat uživatele a objekty.
Závěr
Termín schéma lze použít v mnoha různých kontextech. V kontextu vytváření schémat v konkrétním systému správy databází budete muset pracovat s tím, že DBMS schémata definuje.
A když přejdete na nový DBMS, nezapomeňte se podívat, jak tento systém definuje schémata.