sql >> Database >  >> RDS >> Mysql

Wat is een databaseschema?

In databasetermen, een schema (spreek uit als 'skee-muh' of 'skee-mah') is de organisatie en structuur van een database. Beide schema's en schema's kan worden gebruikt als meervoudsvormen.

Een schema bevat schema-objecten, zoals tabellen, kolommen, gegevenstypen, weergaven, opgeslagen procedures, relaties, primaire sleutels, externe sleutels, enzovoort.

Een databaseschema kan worden weergegeven in een visueel diagram, dat de databaseobjecten en hun relatie met elkaar laat zien.

Hierboven ziet u een eenvoudig voorbeeld van een schemadiagram. Het toont drie tabellen, samen met hun gegevenstypen, relaties tussen de tabellen, evenals hun primaire sleutels en externe sleutels.

Hier is een complexer voorbeeld van een databaseschema:

In dit geval is het schemadiagram opgedeeld in vier secties:

  • Klantgegevens :Gegevens met betrekking tot de klanten, zoals hun naam, adres, enz.
  • Zakelijk :Gegevens die nodig zijn om het bedrijf te runnen, zoals personeel, winkellocaties, betalingsgegevens, enz.
  • Inventaris :Details over alle producten. In dit geval zijn de producten films, dus het bevat gegevens zoals de filmtitel, de categorie, de acteurs, enz.
  • Beelden :Speciale kijk op gegevens die worden gebruikt voor taxaties.

Dus door naar deze schemadiagrammen te kijken, kunnen we doorgaan en een database maken. Met MySQL Workbench kunt u zelfs een CREATE TABLE genereren script rechtstreeks uit het diagram. U kunt vervolgens het script gebruiken om een ​​database te maken. Je kunt zelfs een database reverse engineeren tot een diagram.

Is een schema en een database hetzelfde?

Er is veel verwarring over schema's als het gaat om databases. Vaak rijst de vraag of er een verschil is tussen schema's en databases en zo ja, wat is dan het verschil.

Afhankelijk van de leverancier

Een deel van de reden voor de verwarring is dat databasesystemen de neiging hebben om schema's op hun eigen manier te benaderen.

  • De MySQL-documentatie stelt dat fysiek een schema synoniem is met een database . Daarom zijn een schema en een database hetzelfde hetzelfde .
  • In de Oracle Database-documentatie staat echter dat bepaalde objecten in een database kunnen worden opgeslagen, maar niet in een schema. Daarom zijn een schema en een database twee verschillende dingen .
  • En volgens dit technische artikel van SQL Server is een schema een aparte entiteit binnen de database. Het zijn dus twee verschillende dingen .

Dus, afhankelijk van het RDBMS dat u gebruikt, kunnen schema's en databases wel of niet hetzelfde zijn.

Hoe zit het met de SQL-standaard?

De ISO/IEC 9075-1 SQL-standaard definieert een schema als een een permanente, benoemde verzameling descriptoren .

Als je eerder in de war was, hoop ik dat ik het niet alleen erger heb gemaakt...

Brede betekenis

Een andere reden voor de verwarring is waarschijnlijk te wijten aan het feit dat de term schema zo'n brede betekenis heeft. Het heeft verschillende connotaties binnen verschillende contexten.

Het woord schema is afkomstig van het Griekse woord skhēma , wat vorm . betekent , cijfer , vorm , of plan .

Schema wordt in de psychologie gebruikt om een ​​georganiseerd denk- of gedragspatroon te beschrijven dat informatiecategorieën en de onderlinge relaties organiseert.

Voordat we een database ontwerpen, moeten we ook kijken naar de informatiecategorieën en de onderlinge relaties. We moeten een conceptuele . maken schema voordat we zelfs maar beginnen met het fysieke schema binnen het DBMS.

Bij softwareontwikkeling zou men bij het bespreken van schema's conceptueel kunnen hebben schema's, fysiek schema's, intern schema's, extern schema's, logisch schema's, enz. Elk van deze heeft zijn eigen specifieke betekenis.

Schemadefinities door DBMS

Hier is een snelle definitie van het schema van de drie toonaangevende databasesystemen:

MySQL

Conceptueel is een schema een set onderling gerelateerde database-objecten, zoals tabellen, tabelkolommen, gegevenstypen van de kolommen, indexen, externe sleutels, enzovoort.

….

In MySQL, fysiek, een schema is synoniem met een database . U kunt het trefwoord SCHEMA . vervangen in plaats van DATABASE in MySQL SQL-syntaxis, bijvoorbeeld met behulp van CREATE SCHEMA in plaats van CREATE DATABASE .

Bron:"MySQL-woordenlijst". MySQL 5.7 Naslaggids. MijnSQL. Ontvangen 6 juni 2016.

SQL-server

De namen van tabellen, velden, gegevenstypen en primaire en externe sleutels van een database.

"Woordenlijst". SQL Server 2016 technische documentatie. Microsoft-ontwikkelaarsnetwerk. Ontvangen 6 juni 2016.

 Oracle-database

Het schemasysteem van Oracle Database is heel anders dan de andere systemen. Het schema van Oracle is sterk gebonden aan de databasegebruiker.

Een schema is een verzameling logische structuren van gegevens of schema-objecten. Een schema is eigendom van een databasegebruiker en heeft dezelfde naam als die gebruiker. Elke gebruiker heeft een enkel schema.

Bron: 'Databaseobjecten'. Oracle Database Online Documentatie 12c Release 1 (12.1). Oracle-helpcentrum. Ontvangen 6 juni 2016.

Dit artikel over schemadefinities door DBMS geeft meer details.

Schema's maken

Ondanks hun verschillen in het definiëren van schema's, ondersteunt elk van de drie bovengenoemde DBMS'en de CREATE SCHEMA verklaring.

En daar houdt de overeenkomst op.

MySQL

In MySQL, CREATE SCHEMA creëert een database.

Dit komt omdat CREATE SCHEMA is een synoniem voor CREATE DATABASE . Met andere woorden, u kunt CREATE SCHEMA . gebruiken of CREATE DATABASE om hetzelfde te doen.

Oracle-database

In Oracle Database, de CREATE SCHEMA statement maakt niet echt een schema. Dit komt omdat er al een schema is gemaakt met elke databasegebruiker.

In Oracle is de CREATE USER statement maakt het schema.

In Oracle, CREATE SCHEMA Met de instructie kunt u uw schema vullen met tabellen en weergaven en rechten toekennen aan die objecten zonder dat u meerdere SQL-instructies in meerdere transacties hoeft uit te geven.

SQL-server

In SQL Server, CREATE SCHEMA zal een schema maken met de naam die u het geeft.

In tegenstelling tot MySQL, is de CREATE SCHEMA statement maakt een schema aan dat apart voor de database wordt gedefinieerd.

In tegenstelling tot Oracle, is de CREATE SCHEMA statement maakt feitelijk het schema.

Nadat u in SQL Server het schema hebt gemaakt, kunt u er gebruikers en objecten aan toevoegen.

Conclusie

De term schema kan in veel verschillende contexten worden gebruikt. In de context van het maken van schema's binnen een specifiek databasebeheersysteem, moet u echter werken met dat DBMS dat schema's definieert.

En als u overstapt naar een nieuw DBMS, moet u opzoeken hoe dat systeem schema's definieert.


  1. Hoe maak je een back-up en herstel je een database als een kopie op dezelfde server?

  2. cx_Oracle en Exception Handling - Goede praktijken?

  3. Hoe MariaDB 10 op Debian en Ubuntu te installeren

  4. Waarom geeft mysqli de foutmelding 'Commands out of sync'?