A databázové schéma je kolekce metadat, která popisuje vztahy mezi objekty a informacemi v databázi. Snadný způsob, jak si představit schéma, je myslet na něj jako na box, který obsahuje tabulky, uložené procedury, zobrazení a související datová aktiva. Schéma definuje infrastrukturu tohoto boxu.
Kontejnery na datová aktiva
Na své základní úrovni slouží schéma jako kontejner pro datová aktiva. Různí prodejci databází však strukturují svá schémata různými způsoby. Například Oracle zachází s každým schématem jako s uživatelským účtem. Chcete-li vytvořit nové schéma, správce databáze vytvoří nového uživatele databáze se zamýšleným názvem schématu.
Proč záleží na schématech
Protože schémata představují základní strukturální prvek databáze, většina databázových prostředí používá přístupová oprávnění k objektům na úrovni schématu. Například firemní databáze může obsahovat řadu uživatelů. Každý uživatel získá schéma, ale přístup k různým schématům se uděluje jednotlivě a s granularitou oprávnění uživatelům mimo domácí schéma. Většina nástrojů pro správu databází neuvádí schémata; místo toho vypisují databáze a uživatele.
Například společnost vytvoří uživatelské účty (schémata) pro Boba a Jane. Vytváří také účty pro oddělení jako HR a Marketing. Potom dává analytikovi v každém oddělení přístup k účtu schématu jejich oddělení. Analytik HR vytváří tabulky a pohledy v rámci schématu HR a uděluje Bobovi přístup ke čtení (ale ne zápisu) tabulky HR, která obsahuje seznam jmen zaměstnanců a identifikační čísla zaměstnanců. Analytik HR může také udělit Jane přístup ke čtení a zápisu do tabulky HR, která uvádí telefonní čísla zaměstnanců. Udělením přístupu tímto způsobem mohou pouze ty správné role a uživatelé číst, zapisovat nebo upravovat data v samostatném datovém aktivu v rámci větší databáze. Každý databázový stroj vypadá na schémata jako na základní metodu segregace dat v prostředí více uživatelů. Různé databázové stroje zacházejí s uživateli a schématy odlišně. V dokumentaci k vašemu databázovému stroji najdete syntaxi a logické modely obklopující uživatele, schémata a udělování oprávnění.
Vytváření schémat
Schéma je formálně definováno pomocí jazyka Structured Query Language (SQL). Například v Oracle vytvoříte schéma vytvořením uživatelského účtu, který je jeho vlastníkem:
VYTVOŘIT UŽIVATELE bob
IDENTIFIKOVÁNO dočasným_heslem
Příklad DEFAULT TABLESPACE
Příklad QUOTA 10M ON
DOČASNÁ TABLESPACE tepl
Systém QUOTA 5M ON
PROFIL app_user
HESLO EXPIRE;
Jiným uživatelům je umožněn přístup k novým schématům na základě jejich uživatelského jména nebo jedné nebo více rolí, ke kterým byl přidán uživatelský účet.
Schémata vs. datové modely
Stejně jako datový model není schéma vnitřně strukturované pro nic. Místo toho je to infrastruktura pro podporu oprávnění k segmentaci v databázi. Datový model je kolekce tabulek a pohledů spojených na konkrétních klíčích. Tato datová aktiva společně slouží obchodnímu účelu. Je přijatelné použít datový model na schéma – pro velké a složité datové modely jejich přidružení ke schématům umožňuje inteligentní správu databází. Ale není logicky nutné použít schéma pro datový model nebo zacházet s datovým modelem jako se schématem.
Například personální oddělení může do svého schématu zahrnout datový model pro kontrolu výkonu zaměstnanců. Místo vytváření schématu pro tyto recenze může datový model sedět ve schématu HR (spolu s dalšími datovými modely) a zůstat logicky odlišný prostřednictvím předpon tabulky a názvů zobrazení pro objekty v datovém modelu. Datový model může získat neformální název, například recenze výkonu, a poté může být před všemi tabulkami a pohledy uvedena předpona pr_. Na tabulku se seznamem zaměstnanců lze odkazovat jako hr.pr_employee bez nutnosti nového schématu pro kontrolu výkonu. FAQ
-
Jaký je rozdíl mezi schématem databáze a stavem databáze?
Databázové schéma popisuje databázi. Stav databáze odkazuje na obsah databáze v daném okamžiku a lze jej považovat za rozšíření schématu databáze.
-
Co je relační schéma databáze?
Relační schéma popisuje vztahy mezi tabulkami a položkami, které jsou navzájem spojeny. Schéma může být grafické znázornění nebo graf, nebo může být napsáno v kódu SQL.