Introductie
Deze checkpoint is bedoeld om je te helpen beoordelen wat je hebt geleerd van onze introductieartikelen over Databases, waarin we databases definieerden en gangbare databasebeheersystemen introduceerden. Je kunt deze checkpoint gebruiken om je kennis over deze onderwerpen te testen, belangrijke termen en commando’s te herzien, en bronnen te vinden voor verdere studie.
A database is any logically modeled collection of information or data. When people refer to a “database” in the context of websites, applications, and the cloud, they often mean a computer program that manages data stored on a computer. These programs, known formally as database management systems (DBMS), can be combined with other programs (like a web server and a front-end framework) to form production-ready applications.
In deze checkpoint vind je twee secties die de centrale ideeën uit de introductieartikelen samenvatten: een korte uitleg van wat een database is (inclusief subsecties over relationele en niet-relationele databases) en een sectie over hoe je kunt communiceren met je DBMS via de commandoregel of grafische gebruikersinterfaces. In elk van deze secties zijn interactieve elementen om je kennis te testen. Aan het einde van deze checkpoint vind je mogelijkheden voor verdere studie over databasebeheersystemen, volledig beheerde databases en het bouwen van apps met backend-databases.
Bronnen
- Een Inleiding tot Databases
- Begrip van SQL-beperkingen
- SQLite vs MySQL vs PostgreSQL: Een Vergelijking Van Relationele Database Management Systemen
- A Comparison of NoSQL Database Management Systems and Models
- Hoe Redis te Installeren en Beveiligen op Ubuntu 22.04
- Hoe CRUD-operaties uit te voeren in MongoDB
Wat Is een Database?
A database is any logically modeled collection of information, and a database management system is what most people think of when they think “I know what a database is!” You use a database management system (DBMS), which is a computer program designed to interact with the information, to access and manipulate the information stored in your database.
Termen om te Weten
Bepaal de volgende termen en gebruik vervolgens de vervolgkeuzefunctie om je werk te controleren.
Replication
Reproductie verwijst naar de praktijk van het synchroniseren van gegevens over meerdere afzonderlijke databases. Deze praktijk biedt redundantie, verbetert schaalbaarheid en vermindert leeslatentie.
Sharding
Database sharding is een architecturale praktijk om gegevens op te splitsen in stukjes, genaamd logische shards, die zijn verdeeld over afzonderlijke knooppunten, genaamd fysieke shards. Voor meer informatie over deze praktijk, kun je ons artikel over Begrip van Database Sharding raadplegen.
Er zijn drie veelvoorkomende relationele modellen die worden gebruikt voor databasesystemen:
Relational Model | Relationship |
---|---|
One-to-one | In a one-to-one relationship, rows in one table (sometimes called the parent table) are related to one and only one row in another table (sometimes called the child table). |
One-to-many | In a one-to-many relationship, a row in the initial table (sometimes called the parent table) can relate to multiple rows in another table (sometimes called the child table). |
Many-to-many | In a many-to-many relationship, rows in one table can related to multiple rows in the other table, and vice versa. While these tables may also be referred to as parent and child tables, the multidirectional relationship does not necessitate a hierarchical relationship. |
Deze relationele modellen structureren hoe databases met elkaar kunnen relateren.
Er zijn twee categorieën voor databasebeheer: relationele en niet-relationele databases. In de volgende subsecties leer je over elk type en de gangbare DBMS’en voor die types.
Relationele Databases
A relational database organizes information through relations, which you might recognize as a table.
Controleer Jezelf
What are the elements that make up a relation?
A relation is a set of tuples, or rows in a table, with each tuple sharing a set of attributes, or columns. A tuple is a unique instance of what type of data the table holds, whereas an attribute specifies the data type for what is allowed in the column.
What is the difference between a primary key and a foreign key?
A primary key refers to the column that will uniquely identify each row in a relational table, whereas a foreign key is a copy of the primary key inserted into a second relation in order to create a relationship between two tables.
Wanneer informatie in een database is opgeslagen en is georganiseerd in de relatie, kan deze worden benaderd via queries die een gestructureerd verzoek om informatie maken. Veel relationele databases gebruiken de Structured Query Language, vaak aangeduid als SQL, om queries naar de database te beheren.
Je kunt SQL constraints gebruiken bij het ontwerpen van je database. Deze constraints leggen beperkingen op aan welke wijzigingen kunnen worden aangebracht in de gegevens in de tabel.
Controleer Jezelf
Why might you impose constraints on your database?
- Bedrijfsregels: Constraints stellen databasebeheerders in staat ervoor te zorgen dat de database in overeenstemming is met gedefinieerde beleidsregels en procedures die voldoen aan zakelijke behoeften en verwachtingen.
- Data-integriteit: Gegevensinvoer is vatbaar voor invoerfouten, dus constraints bieden aanvullende parameters om de juistheid van de gegevens te waarborgen.
What are the five constraints that are formally defined by the SQL standard?
PRIMARY KEY
vereist dat elke invoer in de opgegeven kolom zowel uniek als nietNULL
is, en stelt u in staat die kolom te gebruiken om elke individuele rij in de tabel te identificeren.FOREIGN KEY
vereist dat elke invoer in de opgegeven kolom al moet bestaan in een specifieke kolom van een andere tabel.UNIQUE
verbiedt het toevoegen van dubbele waarden aan de opgegeven kolom.CHECK
definieert een vereiste voor een kolom, bekend als een predicaat, dat elke waarde die erin wordt ingevoerd, moet voldoen.NOT NULL
verbiedt het toevoegen van enigeNULL
-waarden aan de opgegeven kolom.
Enkele open-source relationele databasebeheersystemen die zijn gebouwd met SQL zijn MySQL, MariaDB, PostgreSQL en SQLite. Blijf leren over relationele databases met Begrip van Relationele Databases en bekijk veelvoorkomende relationele DBMS met SQLite vs MySQL vs PostgreSQL: Een Vergelijking van Relationele Databasebeheersystemen.
Termen Om Te Weten bij Relationele Databases
Door elk van de artikelen heb je een woordenschat over relationele databases ontwikkeld. Definieer elk van de volgende termen en gebruik vervolgens de vervolgkeuzefunctie om je werk te controleren.
Constraint
A constraint is any rule applied to a column or table that limits what data can be entered into it.
Data Types
A data type dictates what kind of entries are allowed in a column.
Object Database
Een objectdatabase gebruikt objectgeoriënteerde structuren voor informatie. PostgreSQL is een relationele database die enkele kenmerken van objectdatabases opneemt.
Serverless
A serverless database, like SQLite, allows any process that accesses the database to write and write to the database disk file directly. This behavior is in contrast to the interprocess communication that is implemented by other relational database engines.
Je kunt een serverloze functie schrijven om te oefenen met het uitvoeren van een serverloze toepassing.
Signed and Unsigned Integers
Sommige numerieke gegevenstypen zijn getekend, wat betekent dat ze zowel positieve als negatieve getallen kunnen vertegenwoordigen, terwijl andere ongetekend zijn en alleen het positieve getal kunnen vertegenwoordigen.
Nu je bekend bent met relationele databases, kun je hun tegenhanger begrijpen: niet-relationele databases.
Niet-relationele en NoSQL-databases
Als je gegevens op een ongestructureerde manier moet opslaan, biedt een niet-relationele database een alternatief model. Omdat een niet-relationele database geen SQL gebruikt, wordt het soms aangeduid als een NoSQL-database.
Er zijn verschillende beschikbare opties voor een niet-relationele database, zoals sleutel-waarde opslagplaatsen, kolomgerichte databases, documentopslagplaatsen, en graafdatabases. Elk van deze modellen richt zich op mogelijke problemen bij het gebruik van een relationele database, waaronder horizontale schaling, uiteindelijke consistentie over knooppunten, en het beheer van ongestructureerde gegevens.
Termen om te kennen bij niet-relationele databases
Elk van de niet-relationele database modellen heeft specifieke kenmerken die het uniek maken. Definieer het type model en gebruik vervolgens de dropdown-functie om je werk te controleren.
Key-value databases
Sleutel-waarde databases slaan en beheren associatieve arrays op die sleutel-waarde paren bevatten waarbij de sleutel een unieke identifier is die de bijbehorende waarde ophaalt.
Columnar databases
Kolomgerichte databases zijn kolom-georiënteerd, wat betekent dat ze gegevens in kolommen opslaan. De gegevens verschijnen in recordvolgorde waarbij de eerste vermelding in één kolom gerelateerd is aan de eerste vermelding in andere kolommen.
Document-oriented databases
Ook bekend als een documentopslagplaats, zijn dit NoSQL-databases die gegevens opslaan in de vorm van documenten. Elk document bevat metagegevens om de gegevens te structureren, en er kan een API of querytaal worden gebruikt om documenten op te halen.
Graph databases
Graafdatabases zijn een subcategorie van documentopslagplaatsen, en dit type database benadrukt de relaties tussen documenten.
Je kunt je kennis controleren over welke populaire niet-relationele database-managementsystemen overeenkomen met het type database model met behulp van de volgende interactieve dropdown-functie.
Controleer jezelf
Match het volgende databasebeheersysteem met zijn operationeel database model.
- Redis
- Couchbase
- Cassandra
- OrientDB
- MongoDB
- Neo4j
- MemcacheDB
- Apache HBase
Compare your answers using the dropdown feature.
Operational Database Model | Example DBMSs |
---|---|
Key-value store | Redis, MemcacheDB |
Columnar database | Cassandra, Apache HBase |
Document store | MongoDB, Couchbase |
Graph database | OrientDB, Neo4j |
Of je nu een relationele of een niet-relationele database gebruikt, je bouwt waarschijnlijk een applicatie die een databasebeheersysteem als onderdeel van zijn stack bevat.
Het bouwen van een applicatiestack
Het databasebeheersysteem wordt meestal ingezet als een essentieel aspect van een grotere applicatie. Deze applicaties worden soms stacks genoemd, zoals de LAMP-stack of Elastic-stack.
Controleer jezelf
Gebruik de keuzelijst om de antwoorden te krijgen.
What makes up a LAMP stack?
LAMP is een acroniem voor de technologie die deze stack vormt:
- Linux-besturingssysteem
- Apache-webserver
- MySQL-database
- PHP voor dynamische inhoudsverwerking
Er zijn andere L*MP-opties, zoals de LEMP-stack waar E staat voor Nginx, of de LOMP-stack waar O staat voor OpenLiteSpeed.
What makes up Elastic stack?
Elastic Stack is gebouwd rond Elasticsearch, dat zowel een zoekmachine als een op documenten gebaseerde database is.
Als je een externe server opzet met je toepassingsstack, wordt aanbevolen om je gegevens te versleutelen om je systeem te beschermen tegen kwaadwillige interferentie. Je kunt communicatie versleutelen met transport layer security (TLS), dat gegevens in beweging omzet in een ciphertext die alleen kan worden ontcijferd door de juiste cipher. De statische gegevens die in je database zijn opgeslagen, blijven onversleuteld tenzij je een DBMS gebruikt dat versleuteling van gegevens in rust biedt.
Om je database te beheren, kun je ervoor kiezen dit rechtstreeks te doen vanaf de opdrachtregelinterface of via een grafische gebruikersinterface.
Het gebruik van de opdrachtregel met je DBMS
Je begon met het gebruik van de Linux-opdrachtregel met onze introductieartikelen over cloud servers en je hebt een webserver geconfigureerd met de introductieartikelen over oplossingen voor webservers. Via de artikelen over databases heb je verder gewerkt aan het vertrouwd raken met de opdrachtregel door commando’s te gebruiken zoals:
grep
om platte tekstgegevens te doorzoeken naar een specifieke tekst of string.netstat
om netwerkconfiguratie te controleren met de vlaggen-lnp
om luisterende sockets weer te geven (-l
), numerieke adressen (-n
), en de PID en naam van het programma voor elke socket (-p
).systemctl
om desystemd
-service te bedienen.
Je hebt ook geëxperimenteerd met de opdrachtregelhulpmiddelen die worden geleverd met verschillende databasebeheersystemen om te interageren met de database-installatie. Het CLI-hulpprogramma stelt je in staat om opdrachten uit te voeren op de databaseserver en interactief te werken vanuit je terminalvenster. De volgende tabel geeft veelvoorkomende DBMS’en en hun bijbehorende CLI-hulpprogramma weer:
DBMS | CLI tool |
---|---|
MongoDB | MongoDB shell |
MySQL | mysql |
PostgreSQL | psql |
Redis | redis-cli |
Er zijn ook opdrachtregelclients van derden voor sommige databasesystemen, zoals Redli voor Redis.
Wanneer je de opdrachtregel gebruikt om met je databasesysteem te werken, open je een databasespecifieke serverprompt, meestal gekoppeld aan je gebruikersaccount voor dat databasesysteem. Als je bijvoorbeeld een MySQL-serverprompt zou openen en inlogt met je MySQL-gebruiker, zou je een databaseprompt als volgt zien:
-
Elke opdrachtregelclient van een DBMS heeft zijn eigen syntaxis voor commando’s.
Na het leren over SQL-beperkingen, kun je die beperkingen gebruiken met een MySQL-database door deze commando’s uit te voeren:
CREATE DATABASE
om een database te maken.USE
om een database te selecteren.CREATE TABLE
om een tabel te maken met specificaties voor de kolommen en beperkingen toegepast op die kolommen.ALTER TABLE
metADD
om beperkingen toe te voegen aan een bestaande tabel en metDROP CONSTRAINT
om een beperking van een bestaande tabel te verwijderen.
Je kunt je MySQL-databasevaardigheden blijven ontwikkelen met de serie Hoe SQL te gebruiken.
Met Redis heb je Redis geïnstalleerd en beveiligd met de volgende commando’s en geëxperimenteerd met het hernoemen van commando’s:
auth
om clients te authenticeren voor toegang tot de database.exit
enquit
om de Redis-CLI-prompt te verlaten.get
om de waarde van een sleutel op te halen.ping
om de connectiviteit te testen.set
om sleutels in te stellen.
En in de MongoDB-shell heb je gebruik gemaakt van binair JSON (bekend als BSON) om CRUD-operaties uit te voeren met de volgende methoden voor queryfiltering:
count
-methode om het aantal objecten in een opgegeven collectie te controleren.deleteOne
om het eerste document te verwijderen dat aan de specificaties voldoet.deleteMany
om meerdere objecten tegelijk te verwijderen.find
om documenten op te halen in je MongoDB-database met de functie voor het mooi opmaken van de regels.insertOne
-methode om individuele documenten te maken.insertMany
-methode om meerdere documenten in één bewerking of collectie in te voegen.ObjectId
-objectdatatype om objectidentificatoren op te slaan.updateOne
om een enkel document bij te werken met opgegeven sleutels.updateMany
om elk document in een verzameling bij te werken dat overeenkomt met de gespecificeerde filters.
Je zult waarschijnlijk CRUD-operaties gebruiken om te interacteren met je gegevens over verschillende database-beheersystemen heen.
Controleer jezelf
What does CRUD stand for?
CRUD is een acroniem dat wordt gebruikt om de volgende vier fundamentele gegevensbewerkingen te beschrijven:
- Creëren
- Read
- Updaten
- Deleten
Hoewel je ervoor kunt kiezen om je database rechtstreeks vanaf de opdrachtregel te beheren, kun je ook een grafische gebruikersinterface (GUI) gebruiken voor veelvoorkomende database-beheersystemen.
Het gebruik van een grafische gebruikersinterface
Er zijn veel verschillende GUI-tools om met je database te werken als je besluit om niet de ontworpen CLI-tool te gebruiken.
Om MySQL-beheer via het web te beheren, kunt u phpMyAdmin gebruiken door phpMyAdmin te installeren en te beveiligen op verschillende besturingssystemen, of door op afstand verbinding te maken met een beheerde MySQL-database. U kunt ook MySQL Workbench gebruiken om op afstand verbinding te maken met een MySQL-server.
Vergelijkbaar met phpMyAdmin is pgAdmin een webinterface voor het beheren van PostgreSQL. U kunt pgAdmin installeren en configureren in servermodus of het gebruiken om automatische back-ups in te plannen met pgAgent.
Voor MongoDB kunt u overwegen gebruik te maken van MongoDB Compass als grafische interface om toegang te krijgen tot uw database.
Of u nu kiest voor de opdrachtregel of een grafische interface om uw database te beheren, u heeft nu de tools die nodig zijn om uw databasesysteem te beheren.
Wat is het volgende?
Met een beter begrip van databases en populaire databasesystemen kunt u uw gegevens opslaan en beheren of een toepassing bouwen die een databasesysteem gebruikt.
Voor meer informatie over werken met specifieke databasebeheersystemen kunt u onze series Hoe SQL te gebruiken en Hoe gegevens te beheren met MongoDB volgen. Als u problemen ondervindt met MySQL, kunt u debuggen met Hoe problemen oplossen in MySQL. Voor MongoDB-problemen kunt u beoordelen hoe uw problemen gerelateerd zijn aan Hoe CRUD-operaties uitvoeren in MongoDB.
Wanneer u klaar bent om uw apps met databases te bouwen, probeer dan deze tutorials te volgen voor veelvoorkomende applicatiestapelconfiguraties:
- Hoe de Linux, Apache, MySQL, PHP (LAMP) stack te installeren op Ubuntu 22.04
- Hoe de Linux, Nginx, MySQL, PHP (LEMP-stack) te installeren op Ubuntu 22.04
- Hoe Linux, OpenLiteSpeed, MariaDB, PHP (LOMP stack) te installeren op Ubuntu 22.04
Als je de voorkeur geeft aan het bouwen van je apps met volledig beheerde databases, bekijk dan de DigitalOcean-aanbiedingen voor beheerde MongoDB-clusters, MySQL of PostgreSQL-hosting, en beheerde Redis. Je kunt ook een populaire database-optie kiezen voor een installatie met één klik in de DigitalOcean Marketplace.
Met je nieuwe kennis van databases kun je ook je cloudreis voortzetten met containers en beveiliging. Als je dat nog niet hebt gedaan, bekijk dan onze inleidende artikelen over cloudservers en webservers.
Source:
https://www.digitalocean.com/community/tutorials/databases-checkpoint