sql >> Databasteknik >  >> RDS >> Mysql

Schemadefinitioner av DBMS

Olika databashanteringssystem definierar schema på deras eget sätt. Detta kan göra det svårt för databasutvecklare att ta reda på exakt vad ett schema är – särskilt när de växlar mellan olika DBMS.

Den här artikeln innehåller definitioner som används av de tre ledande databassystemen.

 MySQL

MySQL-dokumentationen definierar ett schema både ur en konceptuell och en fysisk synvinkel.

Konceptuell

Konceptuellt är ett schema en uppsättning inbördes relaterade databasobjekt, såsom tabeller, tabellkolumner, datatyper för kolumnerna, index, främmande nycklar och så vidare. Dessa objekt är sammankopplade genom SQL-syntax, eftersom kolumnerna utgör tabellerna, de främmande nycklarna hänvisar till tabeller och kolumner, och så vidare. Helst är de också logiskt anslutna, och arbetar tillsammans som en del av en enhetlig applikation eller flexibelt ramverk. Till exempel, informationsschemat och performance_schema databaser använder "schema" i sina namn för att betona de nära relationerna mellan tabellerna och kolumnerna de innehåller.

Fysisk

Det påpekas sedan att det ur fysisk synvinkel inte finns någon skillnad mellan scheman och databaser:

I MySQL, fysiskt, ett schema är synonymt med en databas . Du kan ersätta nyckelordet SCHEMA istället för DATABASE i MySQL SQL-syntax, till exempel med CREATE SCHEMA istället för CREATE DATABASE .

Källa: "MySQL-ordlista". MySQL 5.7 Referensmanual. MySQL. Hämtad 6 juni 2016.

SQL-server

Ordlista

Databasschema

Namnen på tabeller, fält, datatyper och primära och främmande nycklar för en databas.

Källa: "Ordlista". SQL Server 2016 teknisk dokumentation. Microsofts utvecklarnätverk. Hämtad 6 juni 2016.

Teknisk artikel i SQL Server

Den här artikeln om databasobjektscheman gör uttryckligen skillnaden mellan en databasanvändare och ett schema (detta är i motsats till hur Oracle definierar scheman – nedan).

Ett schema är ett distinkt namnområde för att underlätta separation, hantering och ägande av databasobjekt.

och

Ett objekt som ägs av en databasanvändare är inte längre kopplat till den användaren. Objektet tillhör nu ett schema – en behållare som kan innehålla många databasobjekt.

och

Denna separation innebär att objekt och scheman kan skapas innan användare läggs till i databasen. Det betyder också att en användare kan släppas utan att specifikt släppa de objekt som ägs av den användaren.

Källa: "SQL Server Best Practices – Implementation of Database Object Schemas". Microsoft TechNet-artikel. Publicerad:november 2008. Hämtad 6 juni 2016.

Oracle Database

Oracle Databases schemasystem skiljer sig ganska mycket från de andra systemen. Oracles schema är mycket kopplat till databasanvändaren.

Ett schema är en samling logiska strukturer av data, eller schemaobjekt. Ett schema ägs av en databasanvändare och har samma namn som den användaren. Varje användare äger ett enda schema.

Oracle skiljer mellan schemaobjekt och icke-schemaobjekt . Så med andra ord, vissa databasobjekt kan inte inkluderas i ett schema.

Schemaobjekt

I Oracle Database, schemaobjekt inkludera följande:

  • Kluster
  • Begränsningar
  • Databaslänkar
  • Databasutlösare
  • Mått
  • Externa procedurbibliotek
  • Indexorganiserade tabeller
  • Index
  • Indextyper
  • Java-klasser, Java-resurser, Java-källor
  • Materialiserade vyer
  • Materialiserade vyloggar
  • Gruvmodeller
  • Objekttabeller
  • Objekttyper
  • Objektvyer
  • Operatorer
  • Paket
  • Sekvenser
  • Lagrade funktioner, lagrade procedurer
  • Synonymer
  • Tabell
  • Visningar

Icke-schemaobjekt

I Oracle Database är följande objekt icke-schemaobjekt :

  • Kontext
  • Kataloger
  • Utgåvor
  • Återställningspunkter
  • Roller
  • Återställande segment
  • Tabellytor
  • Användare

Källa: ”Databasobjekt”. Oracle Database Online Documentation 12c Release 1 (12.1). Oracles hjälpcenter. Hämtad 6 juni 2016.


  1. Obesvarade frågor om MS SQL Server-säkerhet och åtkomstkontroll

  2. Konvertera en Unix-tidsstämpel till ett datumvärde i Oracle

  3. Ta bort databaspostmeddelanden från msdb-databasen i SQL Server (T-SQL)

  4. Upprörd med en transaktion