Hvordan fungerer en relationsdatabase? Relationel database model

Databasestyringssystemer og ekspertsystemer. Grundlæggende begreber i relationelle databaser. Arbejder med ønsker. Formularer. Rapporter. Database oprettelse.

Databasestyringssystemer og deres funktioner

I moderne teknologi databaser til oprettelse af databaser, deres support og vedligeholdelse, specialiserede software- databasestyringssystemer. Et DBMS er et sæt software- og sprogværktøjer, der er nødvendige for at skabe og drive databaser.

På databaseudviklingsstadiet bruges DBMS til at beskrive strukturen af ​​databasen: definition af tabeller; bestemmelse af antallet af felter; typen af ​​data, der vises i dem; feltstørrelser; definere relationer mellem tabeller. Ud over tabeller sørger de fleste DBMS'er for oprettelsen særlige midler til arbejde med data - formularer, forespørgsler.

Under driften af ​​databaser sørger DBMS for redigering af databasestrukturen, udfyldning af den med data, søgning, sortering, udvælgelse af data i henhold til specificerede kriterier og generering af rapporter.

I informationssystemer ah, som kører på IBM-kompatibel personlige computere, såkaldte dBASE-lignende databasestyringssystemer, for eksempel dBASE, FoxPro og Clipper, er blevet udbredt. For brugere er det vigtigt, at selvom de adskiller sig i kommandosprog og indeksfilformater, bruger alle disse DBMS'er de samme databasefiler med .DBF-udvidelsen, hvis format i nogen tid er blevet en slags databasestandard.

I dBASE-lignende databaser bruges faktisk en relationel tilgang til dataorganisering, dvs. hver .DBF-fil er en todimensionel tabel, der består af et fast antal kolonner og variabelt antal linjer (optegnelser). I vendinger vedtaget i teknisk dokumentation, svarer hver kolonne til et felt af en af ​​fem typer (N - numerisk, C - tegn, D - dato, L - logisk, M - note), og hver linje svarer til en post med en fast længde, bestående af en fast antal felter. Ved hjælp af kommando sprog af disse DBMS'er oprettes og rettes fillayout.DBF (tabelbeskrivelser), indeksfiler oprettes, procedurer for at arbejde med databaser beskrives (læsning, søgning, dataændring, rapportering og meget mere). Karakteristisk træk.DBF-filen er enkel og overskuelig: Den fysiske repræsentation af dataene på disken er nøjagtig den samme som tabellen på papir. Generelt bør systemer bygget på .DBF-filer dog betragtes som forældede.



Andre DBMS'er (med et andet filformat) er også meget populære - Paradox, Clarion osv. Det skal understreges, at de anførte systemer sporer deres oprindelse til MS-DOS, men nu er næsten alle blevet forbedret og har versioner til Windows.

Blandt moderne relationssystemer er det mest populære DBMS til Windows Access fra Microsoft, Approach fra Lotus, Paradox fra Borland. Mange af disse systemer understøtter OLE teknologi og kan manipulere ikke kun numeriske og tekstoplysninger, men også grafiske billeder(tegninger, fotografier) ​​og endda lydfragmenter og videoklip.

De anførte DBMS'er kaldes ofte desktop, hvilket betyder den relativt lille mængde data, der serveres af disse systemer. Men de bruges ofte ikke kun individuelle brugere, men også hele teams (især i lokale computernetværk).

På samme tid i centrum af det moderne Informationsteknologi mere kraftfulde bevæger sig gradvist relationel DBMS med såkaldt SQL-adgang. Disse DBMS'er er baseret på klient-server-teknologi. Blandt de førende producenter af sådanne systemer er Oracle, Centura (Gupta), Sybase, Informix, Microsoft og andre.

Datatyper i databaser

Informationssystemer arbejder med følgende hovedtyper af data.

Tekstdata. Værdien af ​​hver tekst (tegn) data er repræsenteret af et sæt vilkårlige alfanumeriske tegn, hvis længde oftest ikke overstiger 255 (for eksempel 5, 10, 140). Tekstdata repræsenterer navne og positioner på personer, navne på virksomheder, produkter, enheder osv. i IS. I et bestemt tilfælde kan værdien af ​​en tekstdata være navnet på en fil, der indeholder ustruktureret information vilkårlig længde(for eksempel en biografi eller fotografi af emnet). Det er det faktisk struktureret link, hvilket giver dig mulighed for dramatisk at udvide informationsindholdet i din tabel.

Numeriske data. Data af denne type bruges typisk til at repræsentere attributter, hvis værdier skal manipuleres. aritmetiske operationer(vægte, priser, koefficienter osv.). Et numerisk datum har normalt yderligere egenskaber, for eksempel: et heltal på 2 bytes langt, et flydende kommatal (4 bytes) i et fast format osv. Separatoren mellem heltal- og brøkdelen er normalt en prik.

Dato- og/eller tidstypedata. Datotypedata er angivet i et eller andet maskinkendt format, f.eks. DD.MM.ÅÅ (dag, måned, år). Ved første øjekast er dette særlig situation tekstdata. Brug af en speciel datotype i en IC har dog følgende fordele. For det første får systemet mulighed for at opretholde streng kontrol (månedsværdien kan f.eks. kun være diskret i intervallet 01-12). For det andet bliver det muligt automatisk at repræsentere datoformatet afhængigt af traditionerne i et bestemt land (for eksempel er MM-DD-GT-formatet vedtaget i USA). For det tredje, når du programmerer, er aritmetiske operationer med datoer meget forenklede (prøv f.eks. manuelt at beregne en dato 57 dage efter en given dato). Ved brug af af denne type tid.

Logiske data. En data af denne type (nogle gange kaldet Boolean) kan kun tage en af ​​to gensidigt udelukkende værdier - Sand eller Falsk (betinget: 1 eller 0). Det er faktisk en switch, hvis værdi kan tolkes som "Ja" og "Nej" eller som "Sandt" og "False". Den boolske type er praktisk at bruge til de attributter, der kan have en af ​​to gensidigt udelukkende værdier, for eksempel at have et kørekort (ja eller nej), militærtjeneste (ja eller nej) osv.

OLE-objektfelter. Værdien af ​​sådanne data kan være et hvilket som helst OLE-objekt, der er tilgængeligt på computeren (grafik, lyd, video). Især kan listen over elever omfatte ikke kun et statisk fotografi af eleven, men også hans stemme.

Brugerdefinerede typer. Mange systemer giver brugerne mulighed for at oprette deres egne datatyper, for eksempel: "Ugedag" (mandag, tirsdag osv.), "Adresse" ( postnummer- by - ...), osv.

I et bestemt tilfælde kan værdien af ​​en tekstdata være en samling af mellemrum, og værdien af ​​en numerisk data kan være nul. Hvis der overhovedet ikke indtastes information i tabellen, vil værdien være tom (Null). Null må ikke forveksles med nul eller mellemrum. I mange systemer er det vigtigt for brugeren at registrere fraværet af data for nogle forekomster af et objekt (f.eks. fraværet af en adresse, "Adressen er null"). Hvis du ved et uheld indtaster et mellemrum i en sådan tabelrække, vil systemet overveje, at adressen er angivet, og denne kopi vil ikke indgå på listen over objekter med manglende adresser.

Relationelle databaser

Den mest bekvemme måde for både brugeren og computeren er at præsentere data i form af en todimensionel tabel – de fleste moderne informationssystemer fungerer netop med sådanne tabeller. Databaser, der består af todimensionelle tabeller, kaldes relationelle , (på engelsk "relation" - relation). Hovedideen med den relationelle tilgang er at repræsentere en vilkårlig datastruktur i form af en simpel todimensionel tabel.

Et eksempel på implementering af en relationel datamodel kunne være en tabel med information om elever.

Som det kan ses af ovenstående eksempel, har en relationstabel følgende egenskaber:

· hver række i tabellen er ét dataelement (oplysninger om én elev);

· alle kolonner i tabellen er homogene, dvs. alle elementer i en kolonne har samme type og længde (f.eks. viser kolonnen Navn tegntype elevnavne på op til 17 tegn lange);

hver kolonne har unikt navn(tabellen har f.eks. ikke to navnekolonner);

· identiske rækker i tabellen er ikke tilladt (en indtastning for hver elev foretages kun én gang);

· rækkefølgen af ​​rækkerne og kolonnerne i tabellen kan være vilkårlig (en indtastning om eleven i tabellen foretages ved optagelse på skolen, og rækkefølgen af ​​kolonnerne er ligegyldig).

Strukturelle elementer i en relationsdatabase

Lad os se på hovedet ved at bruge en relationstabel som eksempel strukturelle elementer Database.

1. I relationsdatabaser præsenteres enhver indsamling af data i form af todimensionelle tabeller (relationer), svarende til listen over elever beskrevet ovenfor. Desuden består hver tabel af et fast antal kolonner og et vist (variabelt) antal rækker. Beskrivelsen af ​​kolonnerne kaldes normalt for tabellayout.

2. Hver kolonne i tabellen repræsenterer et felt - en elementær enhed for logisk organisering af data, som svarer til en udelelig informationsenhed - detaljerne i et dataobjekt (for eksempel elevens efternavn, adresse).

Følgende egenskaber bruges til at beskrive feltet:

· feltnavn (f.eks. personligt filnummer, efternavn);

· felttype (for eksempel tegn, dato);

· yderligere egenskaber (feltlængde, format, nøjagtighed).

For eksempel felt Fødselsdato kan være af typen "dato" og længde 8 (6 cifre og 2 prikker, der adskiller dag, måned og år i datoposten).

3. Hver række i en tabel kaldes en post. Posten kombinerer logisk alle de felter, der beskriver et dataobjekt, for eksempel beskriver alle felterne i den første række i ovenstående tabel data om den studerende Ivan Vasilyevich Petrov, født den 12. marts 1989, bor på adressen: st. Gorky, 12-34, studerer i klasse 4A, personligt filnummer - P-69. Systemet nummererer poster i rækkefølge: 1,2, ..., n, hvor n er samlet antal poster (rækker) i tabellen vedr dette øjeblik. I modsætning til antallet af felter (kolonner) i en tabel, kan antallet af poster under driften af ​​databasen variere efter ønske (fra nul til millioner). Antallet af felter, deres navne og typer kan også ændres, men dette er en speciel operation kaldet ændring af bordlayout .

4. Filpoststrukturen specificerer felter, hvis værdier er en simpel nøgle, der identificerer postforekomsten. Et eksempel på dette simpel nøgle i Elev-tabellen er der et personligt filnummerfelt, hvis værdi unikt identificerer ét tabelobjekt - én elev, da der ikke er to elever i tabellen med samme personjournalnummer.

5. Hvert felt kan indgå i flere tabeller (f.eks. et felt Efternavn kan indgå i tabellen Liste over elever i teatergruppen).

Database (DB) - er en navngivet samling af strukturerede data relateret til en bestemt emneområde og beregnet til opbevaring, akkumulering og behandling ved hjælp af en computer.

Relationel base Data (RBD) er et sæt af relationer, hvis navne falder sammen med navnene på skemarelationer i databaseskemaet.

Basale koncepter relationelle databaser:

· Datatype– type værdier for en specifik kolonne.

· Domæne(domæne) – sættet af alle gyldige attributværdier.

· Attribut(attribut) – tabelkolonneoverskrift, der karakteriserer en navngivet egenskab for et objekt, for eksempel elevens efternavn, ordredato, medarbejders køn osv.

· Cortege– en tabelrække, der repræsenterer et sæt værdier af logisk relaterede attributter.

· Holdning(relation) – en tabel, der afspejler information om objekter i den virkelige verden, for eksempel om studerende, ordrer, medarbejdere, beboere osv.

· Primærnøgle (primærnøgle) – et felt (eller sæt af felter) i en tabel, der unikt identificerer hver af dens poster.

· Alternativ nøgle er et felt (eller et sæt af felter), der ikke matcher den primære nøgle og entydigt identificerer en forekomst af en post.

· Ekstern nøgle er et felt (eller et sæt af felter), hvis værdier matcher de eksisterende værdier af den primære nøgle i en anden tabel. Når du sammenkæder to tabeller, er den primære nøgle i den første tabel knyttet til den fremmede nøgle i den anden tabel.

· Relationel model data (RMD)- organisering af data i form af todimensionelle tabeller.

Hver relationstabel skal have følgende egenskaber:

1. Hver tabelpost er unik, dvs. værdisættet i felterne gentages ikke.

2. Hver værdi skrevet i skæringspunktet mellem en række og en kolonne er atomisk (uadskillelig).

3. Værdierne for hvert felt skal være af samme type.

4. Hvert felt har et unikt navn.

5. Rækkefølgen af ​​indtastningerne er ikke vigtig.

Hovedelementer i databasen:

Mark- en elementær enhed for logisk organisering af data. Følgende egenskaber bruges til at beskrive feltet:

· navn, for eksempel efternavn, fornavn, patonym, fødselsdato;

· indtast f.eks. streng, tegn, numerisk, dato;

· længde, for eksempel i bytes;

· præcision for numeriske data, såsom to decimaler for at vise brøkdelen af ​​et tal.

Optage- et sæt værdier af logisk relaterede felter.

Indeks– et middel til at fremskynde registreringssøgningen, der bruges til at etablere relationer mellem tabeller. En tabel, som et indeks bruges til, kaldes indekseret. Når du arbejder med indekser, skal du være opmærksom på organiseringen af ​​indeksene, som er grundlaget for klassificering. Et simpelt indeks er repræsenteret af et enkelt felt eller logisk udtryk, behandler ét felt. Sammensat indeks repræsenteret ved flere felter med mulighed for at bruge forskellige funktioner. Tabelindekser gemmes i en indeksfil.


Dataintegritet– dette er et middel til at beskytte data på kommunikationsfelter, som giver dig mulighed for at vedligeholde tabeller i en konsistent (konsistent) tilstand (det vil sige, det tillader ikke eksistensen af ​​poster i den underordnede tabel, der ikke har tilsvarende poster i den overordnede tabel bord).

Anmodning– et formuleret spørgsmål til en eller flere indbyrdes forbundne tabeller, der indeholder datastikprøvekriterier. Anmodningen er lavet vha struktureret sprog SQL-forespørgsler(Struktureret forespørgselssprog). Hentning af data fra en eller flere tabeller kan resultere i et sæt poster kaldet en visning.

Datapræsentation– en navngivet forespørgsel gemt i databasen for at hente data (fra en eller flere tabeller).

En visning er i bund og grund en midlertidig tabel, der er oprettet som et resultat af en forespørgsel. Selve anmodningen kan sendes til separat fil, rapport, midlertidig tabel, tabel på disk osv.

Rapport– en systemkomponent, hvis hovedformål er at beskrive og udskrive dokumenter baseret på information fra databasen.

generelle karakteristika arbejder med RDB:

Den mest almindelige fortolkning af den relationelle datamodel synes at være Data, som gengiver den (med forskellige justeringer) i næsten alle hans bøger. Ifølge Date består den relationelle model af tre dele, der beskriver forskellige aspekter af den relationelle tilgang: den strukturelle del, manipulationsdelen og den holistiske del.

Den strukturelle del af modellen siger, at den eneste datastruktur, der anvendes i relationelle databaser, er den normaliserede n-ære relation.

Manipulationsdelen af ​​modellen angiver to grundlæggende mekanismer til at manipulere relationelle databaser - relationel algebra og relationel regning. Den første mekanisme er hovedsagelig baseret på klassisk teori sæt (med nogle præciseringer), og den anden - på det klassiske logiske apparat af førsteordens prædikatregning. Bemærk, at hovedfunktionen af ​​manipulationsdelen af ​​relationsmodellen er at give et mål for relationaliteten af ​​ethvert specifikt relationsdatabasesprog: et sprog kaldes relationelt, hvis det ikke har mindre udtryksevne og magt end relationel algebra eller relationel calculus.


28. ALGORITMISKE SPROG. OVERSÆTTERE (TOLK OG KOMPILERE). ALGORITMISK SPROG BASIC. PROGRAMMETS STRUKTUR. IDENTIFIKATIONER. VARIABLER. OPERATØRER. BEHANDLING AF EN-DIMENSIONELLE OG TO-DIMENSIONALE ARRAYS. BRUGERFUNKTIONER. SUBRUTINER. ARBEJDER MED DATAFILER.

Sprog højt niveau - et programmeringssprog, hvis begreber og struktur er praktiske for menneskelig opfattelse.

Algoritmisk sprog(Algorithmic language) - et programmeringssprog - et kunstigt (formelt) sprog designet til at skrive algoritmer. Et programmeringssprog er defineret ved dets beskrivelse og implementeret i form af et særligt program: en compiler eller tolk. Eksempler på algoritmiske sprog er Borland Pascal, C++, Basic osv.

Grundlæggende begreber i algoritmisk sprog:

Sprogets sammensætning:

Almindelig dagligdags består af fire hovedelementer: symboler, ord, sætninger og sætninger. Et algoritmisk sprog indeholder lignende elementer, kun ord kaldes elementære konstruktioner, sætninger kaldes udtryk, og sætninger kaldes operatorer.

Symboler, elementære konstruktioner, udtryk og operatorer udgør hierarkisk struktur, da elementære strukturer er dannet ud fra en sekvens af symboler.

Udtryk er en sekvens af elementære strukturer og symboler,

Operatør- en sekvens af udtryk, elementære strukturer og symboler.

Sprogbeskrivelse:

En karakterbeskrivelse består af at angive sprogets gyldige tegn. Beskrivelsen af ​​elementære strukturer betyder reglerne for deres dannelse. Beskrivelse af udtryk er reglerne for dannelsen af ​​ethvert udtryk, der giver mening i et givet sprog. Beskrivelsen af ​​operatører består af en overvejelse af alle typer operatører tilladt på sproget. Beskrivelsen af ​​hvert sprogelement er givet af dets SYNTAX og SEMANTIK.

Syntaktisk definitioner fastlægger regler for konstruktion af sprogelementer.

Semantik definerer betydningen og brugsreglerne for de sprogelementer, for hvilke der er givet syntaktiske definitioner.

Sprog symboler- det er de grundlæggende udelelige tegn, som alle tekster på sproget er skrevet ud fra.

Elementære strukturer- Det her minimumsenheder sprog, der har selvstændig betydning. De er dannet ud fra sprogets grundlæggende symboler.

Udtryk i et algoritmisk sprog består det af elementære strukturer og symboler; det specificerer en regel for beregning af en bestemt værdi.

Operatør sæt Fuld beskrivelse en handling, der skal udføres. Til beskrivelse kompleks handling en gruppe af operatører kan være påkrævet.

I dette tilfælde kombineres operatørerne til Sammensat operatør eller Blok. Handlinger, specificeret af operatørerne, udføres på dataene. Udsagn af et algoritmisk sprog, der giver information om datatyper, kaldes deklarationer eller ikke-eksekverbare udsagn. Et sæt beskrivelser og operatorer forenet af en enkelt algoritme danner et program i et algoritmisk sprog. I processen med at studere et algoritmisk sprog er det nødvendigt at skelne det algoritmiske sprog fra det sprog, hvormed beskrivelsen af ​​det algoritmiske sprog, der studeres, udføres. Normalt kaldes det sprog, der studeres blot et sprog, og det sprog, som beskrivelsen af ​​det studerede sprog er givet - Metasprog.

Oversættere - (English translator - translator) er et oversætterprogram. Det konverterer et program skrevet på et af højniveausprogene til et program bestående af maskininstruktioner.

Et program skrevet i et hvilket som helst algoritmisk sprog på højt niveau kan ikke udføres direkte på en computer. Computeren forstår kun sproget for maskinkommandoer. Følgelig skal et program i et algoritmisk sprog oversættes (oversættes) til kommandosproget på en bestemt computer. En sådan oversættelse udføres automatisk af specielle oversætterprogrammer, der er oprettet for hvert algoritmisk sprog og for hver type computer.

Der er to hovedudsendelsesmetoder - kompilering og fortolkning.

1.Compilation: Compiler(engelsk compiler - compiler, collector) læser hele programmet, oversætter det og laver en komplet version af programmet på maskinsprog, som derefter udføres.

samling hele det originale program konverteres straks til en sekvens af maskininstruktioner. Herefter udføres det resulterende program af en computer med de tilgængelige kildedata. Fordelen ved denne metode er, at oversættelsen udføres én gang, og (multiple) eksekveringen af ​​det resulterende program kan udføres med høj hastighed. Samtidig kan det resulterende program optage meget plads i computerens hukommelse, da en sprogoperator bliver erstattet af hundredvis eller endda tusindvis af kommandoer under oversættelse. Derudover er fejlfinding og ændringer af det udsendte program meget vanskeligt.

2. Tolkning: Tolk(Engelsk tolk - tolk, tolk) oversætter og udfører programmet linje for linje.

fortolkninger kildeprogrammet er gemt i computerens hukommelse næsten uændret. Tolkeprogrammet afkoder udsagn originalt programén ad gangen og sikrer straks deres udførelse med de tilgængelige data. Det fortolkede program fylder lidt i computerens hukommelse og er let at fejlfinde og ændre. Men udførelsen af ​​programmet er ret langsom, da fortolkningen af ​​alle operatører udføres på ny med hver udførelse.

Kompilerede programmer kører hurtigere, men fortolkede programmer er nemmere at rette og ændre.

Hvert specifikt sprog er orienteret enten mod kompilering eller fortolkning - afhængigt af formålet, som det er skabt til. For eksempel bruges Pascal normalt til at løse ganske komplekse opgaver, hvor hastigheden af ​​programmer er vigtig. Derfor givet sprog normalt implementeret ved hjælp af en compiler.

På den anden side blev BASIC skabt som et sprog for begyndere programmører, for hvem linje-for-linje eksekvering af et program har ubestridelige fordele.

Nogle gange er der både en compiler og en tolk til det samme sprog. I dette tilfælde kan du bruge en fortolker til at udvikle og teste programmet og derefter kompilere det fejlrettede program for at forbedre dets eksekveringshastighed.

II. Netværksmodel

III. Relationel model

optageMark

hierarkisk Og netværksmodeller fremmednøgler


4. Relationel datamodel

Relationel database

* Holdning

* Attribut kolonne (felt) borde.

* Datatype

* Forbindelse nøgle.

* En forening

Hoved funktioner RDBMS er:

· Data Definition

· Databehandling

· Datastyring

Microsoft Access

Databasevindue i Access



Metoder til at arbejde med objekter

Knapper til at arbejde med databaseobjekter er placeret på værktøjslinjen i databasevinduet:

Åben– giver dig mulighed for at skifte til tilstanden til at redigere en tabel, udføre en forespørgsel, indlæse en formular, bygge en rapport, køre en makro.

Konstruktør– giver overgang til konfigurationstilstanden for det valgte objekt.

skab– giver dig mulighed for at begynde at oprette et nyt objekt af den valgte type.

7. Arbejde med tabeller

For at oprette en tabel skal du gå til listen over tabeller og klikke på knappen skab . En ny dialogboks vises Nyt bord:

Du kan oprette en tabel i Access på flere måder:

· bygge nyt bord"fra bunden", ved hjælp af Designer;

· lancering Table Wizardsærligt program beder dig om at oprette en tabel i trin for trin tilstand på basen standardløsninger, tilgængelig i Access;

· importere en databasetabel fra en programfil, for eksempel FoxPro eller Excel.

Angivelse af et feltnavn

Feltnavnet er angivet i kolonnen Feltnavn. Navnet må ikke indeholde mere end 64 tegn, med alle tegn tilladt undtagen et punktum, udråbstegn og vinkelbeslag. Det er ikke tilladt at gentage feltnavne.

Datatypedefinition

For hvert felt skal du angive, hvilken type data det indeholder. Datatypen vælges fra en liste, der kan hentes frem ved at klikke på kolonnen Datatype. Access fungerer følgende typer data:

Ø Tekst– til lagring af almindelig tekst med maksimalt antal 255 tegn.

Ø MEMO felt– til lagring af store mængder tekst op til 65.535 tegn.

Ø Numerisk– til lagring af reelle tal.

Ø Dato tid– til lagring af kalenderdatoer og aktuelt klokkeslæt.

Ø Monetære– disse felter indeholder pengebeløb.

Ø Tæller– for at bestemme tabellens unikke systemnøgle. Anvendes typisk til sekventiel nummerering af poster. Når føjet til en tabel ny indgang Værdien af ​​dette felt øges med 1 (én). Værdierne i sådanne felter opdateres ikke.

Ø Logisk – til lagring af data, der tager værdier: Ja eller Nej.

Ø OLE-objektfelt– til lagring af objekter oprettet i andre applikationer.

Beskrivelse af feltegenskaber

Som allerede nævnt er karakteristika for individuelle felter defineret i området med feltegenskaber (faneblad Er almindelige). Hvert felt har et bestemt sæt egenskaber, afhængigt af felttypen. Nogle felttyper har lignende sæt af feltegenskaber. De vigtigste egenskaber for felterne er angivet nedenfor.

Ø Feltstørrelsemaksimal længde tekstfelt(standard 50 tegn) eller datatype nummerfelt. Det anbefales at indstille minimum tilladt værdi denne egenskab, fordi databehandling mindre størrelse kører hurtigere.

Hvis datatypen er numerisk, er følgende egenskabsværdier tilladt: Feltstørrelse:

Kommentar. Hvis feltet konverteres til en mindre størrelse, kan der forekomme datatab.

Ø Feltformat– format til visning af data på skærm eller udskrivning. Typisk bruges standardformatet.

Ø Antal decimaler– indstiller antallet af decimaler efter decimaltegnet for numeriske og valutadatatyper.

Ø Input maske– definerer den form, som data indtastes i feltet (dataindtastningsautomatiseringsværktøj).

Ø Underskrift– betegnelsen for det felt, der skal bruges til at vise feltet i en tabel, formular eller rapport. Hvis denne værdi ikke er defineret, vil feltnavnet blive taget som signatur.

Ø Standard værdistandardværdi, som automatisk indtastes i feltet ved oprettelse af en ny datapost.

Ø Betingelse på værdi– sætter begrænsninger på de indtastede værdier og giver derved mulighed for kontrol over korrektheden af ​​dataindtastning.

Ø Fejl besked– indstiller teksten til den besked, der vises på skærmen, hvis betingelsen for værdien overtrædes.

Ø Obligatorisk felt– bestemmer, om dette felt kan indeholde nulværdier (dvs. forblive tomt), eller om data skal indtastes i dette felt.

Ø Indekseret felt– bruges til søgeoperationer og sortering af poster efter den værdi, der er gemt i dette felt, samt til automatisk at fjerne duplikerede poster. Typefelter MEMO, OLE objekt Og Hyperlink kan ikke indekseres.

Definition af nøglefelt

Efter at have specificeret egenskaberne for alle felter, skal du vælge i det mindste, ét nøglefelt. Som regel angives felter, der har ikke-gentagende data, som nøglefelter, eller der oprettes felter med datatypen Tæller . Under alle omstændigheder bør nøglefeltet ikke indeholde duplikerede data. For at definere en nøgle skal du vælge det eller de ønskede felter og klikke på knappen Nøglefelt Redigere . Et billede af en nøgle vises til venstre for markøren.

At gemme et bord

Før du indtaster information, skal den designede tabel gemmes: tryk på knappen Gemme på værktøjslinjen eller den tilsvarende kommando i p.m. Fil og indtast navnet på tabellen, hvorefter spørgsmålet “Opret et nøglefelt nu?” kommer frem på skærmen. (Ja eller nej)

Hvis svaret er " Ja", så vil Access automatisk oprette et felt med navnet "Kode" og datatypen Tæller , hvis" Ingen", så oprettes tabellen uden et nøglefelt. I dette tilfælde skal du åbne den oprettede tabel i tilstanden Designer og manuelt definere nøglefeltet.

Data input

For at skifte tabellen til informationsinputtilstand skal du skifte til tilstanden Tabeller. Felterne udfyldes sekventielt. Det er praktisk at flytte fra et felt til et andet med tasten Tab(eller en kombination Skift+Tab– i den modsatte retning). Hvis tabellen er designet med standardværdier for nogle felter, vises disse værdier automatisk i de tilsvarende felter. Indgange i en tabel kan flyttes, kopieres og slettes på samme måder som i regneark, det vil sige, først vælg linjerne og udfør derefter den nødvendige handling. En kolonne kan vælges ved at klikke på overskriften. Kolonner kan flyttes til venstre og højre ved hjælp af metoden Træk og slip dråbe(Træk og slip).

Om nødvendigt kan du vende tilbage til tilstanden Designer. Dette gør det muligt at rette hvad som helst i tabelstrukturen.

Sortering af data i en tabel

Dataene i tabellen kan sorteres i stigende eller faldende rækkefølge. For at gøre dette skal du placere musemarkøren i en hvilken som helst celle i kolonnen, hvis værdier vil blive sorteret fra kl. Indlæg vælge et hold Sortering eller klik på den tilsvarende knap på panelet.

8. Oprettelse af forbindelser mellem databasetabeller

Forholdet mellem tabeller etableres ved at definere i én tabel ( underordnet) felt svarende til nøglen til en anden tabel ( vigtigste). Etableret forbindelse vil linke poster, der indeholder i det givne felt samme værdier. Access vil senere bruge de forbindelser, du opretter i forespørgsler, formularer eller rapporter.

Noter.

Ø Begge felter, der skal sammenkædes, skal have det samme datatype.

Ø Ejendomme Feltstørrelse for begge sammenkædede felter numerisk type burde være det samme.

Ø Hvis hovedtabellens nøglefelt er et felt med en datatype Tæller, så kan dette felt tilknyttes et numerisk felt i undertabellen. I dette tilfælde for det numeriske felt i den sammenkædede tabel for egenskaben Feltstørrelse værdi skal angives Langt heltal .

Dataintegritet

Dataintegritet er et sæt regler, der opretholder rigtigheden af ​​relationer mellem poster i relaterede tabeller ah og beskyt data mod utilsigtede ændringer eller sletninger.

Disse regler omfatter:

Ø Du kan ikke indtaste poster i en undertabel, der ikke er relateret til en post i hovedtabellen.

Ø I hovedtabellen kan du ikke ændre værdien af ​​et nøglefelt, hvis der er poster i undertabellen, der er tilknyttet det.

Ø Du kan ikke slette poster i en mastertabel, hvis der er poster knyttet til den i en undertabel.

Cascading operationer

Integriteten af ​​data i relaterede tabeller sikres af to typer kaskadeoperationer:

Ø kaskade opdateringsoperationer;

Ø kaskade sletningsoperationer.

Disse operationer kan slås til eller fra ved at markere de relevante afkrydsningsfelter: "Cascading opdatering af relaterede felter" og "Cascading sletning af relaterede felter".

Hvis afkrydsningsfeltet "Cascading opdatering af relaterede felter" er markeret, vil enhver ændring af værdien af ​​et nøglefelt i hovedtabellen, der er på "en" side af en 1:M relation, resultere i automatisk opdatering tilsvarende værdier i alle relaterede poster.

Når du markerer afkrydsningsfeltet "Cascading sletning af relaterede tabeller", når du sletter en post fra hovedtabellen, er det sikret automatisk fjernelse relaterede poster i underordnede tabeller.

Sletning (ændring af) forbindelser

Ø Åbn vindue Dataskema;

Ø aktiver med venstre museknap den forbindelse, der skal slettes (ændres);

Ø Højreklik musen for at få den kontekstafhængige menu frem og vælg kommandoen Slet (Lave om) henholdsvis.

9. Typer af relationer mellem tabeller

Der er tre typer relationer mellem tabeller:

En-til-en (1:1). En nøgleværdi i hver post i mastertabellen kan kun have en tilsvarende værdi i det tilknyttede felt i én post i den underordnede tabel. I dette tilfælde kan forholdet mellem tabellerne kun etableres gennem nøglefelter begge borde.

En-til-mange (1:M). Værdien af ​​en nøgle i hver post i mastertabellen kan have tilsvarende værdier i det eller de tilknyttede felter i flere poster i undertabellen. Denne type relation bruges ret ofte i relationelle databaser.

Mange-til-mange (M:M). Forekommer mellem to tabeller, når en post fra den første tabel A (outputforhold) kan associeres med mere end én post i en anden tabel B (modtagerelation), til gengæld kan en post fra en anden tabel være tilknyttet mere end én post i det første bord. Denne ordning implementeres kun ved hjælp af en tredje jointabel, hvis linknøgle består af mindst to felter. Disse felter er fremmednøglefelterne i tabel A og B. Den primære nøgle til en jointabel er normalt en kombination af fremmednøgler.

Hvis der er M:M type relationer mellem tabellerne, oprettes en ekstra skæringstabel, ved hjælp af hvilken M:M relationen reduceres til to 1:M type relationer. Access tillader dig ikke at definere en direkte M:M-relation mellem to tabeller.

10. Dannelse af anmodninger

Kørsel af en forespørgsel

For at starte en udførelsesanmodning fra et vindue Designer Du skal klikke på knappen på værktøjslinjen Lancering» ! eller kør kommandoen Anmod/kør. Resultaterne af valg af forespørgselsdata vises på skærmen i tabeltilstand.

Dannelse af Udvælgelsesbetingelser

Listen over operatorer, der bruges til at angive udtryk, er som følger:

Ø operatører sammenligninger:


= (lige med)

<> (ikke lige)

> (mere)

>= (ikke mindre)

< (mindre)

<= (ikke mere)


MELLEM– giver dig mulighed for at indstille en række værdier. Syntaks: Mellem"Udtryk" Og"Udtryk" (f.eks.: MELLEM 10 Og 20 betyder det samme som et boolsk udtryk >= 10 OG<= 20).

I– giver dig mulighed for at angive en liste over værdier, der bruges til sammenligning (operanden er en liste indesluttet i parentes). For eksempel: I("Brest", "Minsk", "Grodno") betyder det samme som det logiske udtryk "Brest" ELLER"Minsk" ELLER"Grodno".

Ø hjerne teaser operatører:

OG(for eksempel: >=10 OG<=20)

ELLER(For eksempel:<50 OR >100)

IKKE(for eksempel: Er ikke null – et felt, der indeholder en værdi).

Ø operatør SYNES GODT OM– kontrollerer overholdelse tekst eller Memo felter efter et givet tegnmønster.

Skabelon tegn tabel

Eksempler på brug af operatoren Synes godt om:

SOM "C*"– linjer, der starter med symbolet C;

LIKE "[A-Z] #"– ethvert symbol fra A til Z og et tal;

LIKE "[! 0 - 9 ABC] * # #"– linjer, der starter med et hvilket som helst andet tegn end et tal eller bogstaverne A, B, C og slutter med 2 cifre;

Komplekse prøveudtagningskriterier

Ofte skal du vælge poster efter en betingelse, der er sat til flere tabelfelter eller efter flere betingelser for et felt. I dette tilfælde gælder "Jeg spørger"(vælg kun poster, hvis alle betingelser er opfyldt) og "ELLER forespørgsler"(vælg poster, når mindst en af ​​betingelserne er opfyldt).

Ved indstilling af " ELLER-forespørgsel» hver valgbetingelse skal placeres på en separat linje Forespørgsel fra.

Ved indstilling af " Jeg spørger» hver valgbetingelse skal placeres på den samme linje, men i forskellige felter Forespørgsel fra.

Disse operationer kan specificeres eksplicit ved hjælp af operatørerne ELLER Og OG henholdsvis.

Iif() og Format() funktioner

Fungere IIf(tilstand; hvisSandt; hvisFalse)– returnerer et af to argumenter afhængigt af resultatet af udtryksevalueringen.

Fungere Format(udtryk; formateringsinstruktion)– returnerer en streng, der indeholder et udtryk, der er formateret i henhold til formateringsinstruktioner.

For udtryk dato tid Du kan bruge følgende tegn i formateringsinstruktioner:

I. Hierarkisk model

II. Netværksmodel

III. Relationel model

I relationsmodellen præsenteres information i form af rektangulære tabeller. Hver tabel består af rækker og kolonner og har et navn, der er unikt i databasen. Til gengæld vil hver linje ( optage) i en sådan tabel indeholder oplysninger, der kun vedrører ét specifikt objekt, og hver kolonne ( Mark) tabel har et unikt navn til sin tabel.

Relationelle databaser (RDB'er), i modsætning til hierarkisk Og netværksmodeller, giver dig mulighed for at organisere forbindelser mellem tabeller til enhver tid. Til dette formål implementerer RDB en mekanisme fremmednøgler. Hver databasetabel har mindst ét ​​felt, der fungerer som et link til en anden tabel. I RDB-terminologi kaldes sådanne felter udenlandske nøglefelter. Ved at bruge fremmednøgler kan du linke alle databasetabeller på et hvilket som helst tidspunkt i arbejdet med databasen.


4. Relationel datamodel

Relationel database (RDB) er et sæt af de enkleste todimensionelle logisk indbyrdes forbundne relationstabeller, bestående af mange felter og poster, der afspejler et bestemt emneområde.

Den relationelle datamodel blev foreslået af E. Codd, en berømt amerikansk databasespecialist. De grundlæggende begreber for denne model blev først offentliggjort i 1970. Da han var matematiker af uddannelse, foreslog Codd at bruge mængdeteoriens apparat (forening, skæringspunkt, forskel, kartesisk produkt) til databehandling. Han viste, at enhver repræsentation af data reduceres til et sæt todimensionelle tabeller af en særlig type, kendt i matematik som en relation (på engelsk - relation, deraf navnet - relationelle databaser).

En af Codds hovedideer var, at forbindelser mellem data skulle etableres i overensstemmelse med deres interne logiske relationer. Det andet vigtige princip foreslået af Codd er, at i relationelle systemer kan en enkelt kommando behandle hele datafiler, mens tidligere kun en enkelt post kunne behandles af en enkelt kommando.

Grundlæggende begreber i relationelle databaser (RDB)

* Holdning– oplysninger om genstande af samme type, for eksempel om kunder, ordrer, medarbejdere. I en relationsdatabase er en relation gemt som en tabel.

* Attribut– en bestemt oplysning om en genstand – for eksempel en kundes adresse eller en medarbejders løn. Attributten gemmes normalt som kolonne (felt) borde.

* Datatype– et begreb, der i relationsmodellen er fuldstændig ækvivalent med det tilsvarende begreb i algoritmiske sprog. Sættet af understøttede datatyper bestemmes af DBMS og kan variere meget mellem systemerne.

* Forbindelse– den måde, hvorpå information i en tabel er relateret til information i en anden tabel. Relationer er lavet ved hjælp af matchende felter kaldet nøgle.

* En forening- Processen med at forbinde tabeller eller forespørgsler baseret på matchende værdier af visse attributter.

Regler (normalisering) for opbygning af en relationsdatabase

Normalisering er en proces med omorganisering af data ved at eliminere gentagne grupper og andre modsætninger for at bringe tabeller til en form, der tillader ensartet og korrekt redigering af data. Det endelige mål med normalisering er at opnå et databasedesign, hvor hver kendsgerning kun optræder ét sted, dvs. redundans af information er udelukket.

1. Hvert felt i en tabel skal være unikt.

2. Hver tabel skal have en unik identifikator ( primærnøgle), som kan bestå af et eller flere tabelfelter.

3. For hver primær nøgleværdi skal der være én og kun én værdi for enhver af datakolonnerne, og den værdi skal være relateret til tabelobjektet (dvs. der må ikke være nogen data i tabellen, der ikke er relateret til objekt defineret af den primære nøgle, men også oplysningerne i tabellen skal fuldt ud beskrive objektet).

4. Det skal være muligt at ændre værdien af ​​et hvilket som helst felt (ikke inkluderet i primærnøglen), og dette bør ikke medføre ændring af et andet felt (dvs. der skal ikke være beregnede felter).

5. Databasestyringssystemer (DBMS)

Databaser vedligeholdes i et computermiljø af software - databasestyringssystemer, som er et sæt generelle eller specialiserede software- og sprogværktøjer, der er nødvendige for at skabe databaser på maskinmedier, holde dem ajour og organisere adgang til dem for forskellige brugere i betingelserne for den vedtagne databehandlingsteknologi.

DBMS - disse er kontrolprogrammer, der giver alle manipulationer med databaser: oprettelse af en database, dens vedligeholdelse, dens brug af mange brugere osv., dvs. de implementerer et komplekst sæt funktioner til centraliseret databasestyring og tjener brugernes interesser.

Et DBMS kan betragtes som en softwareskal, der sidder mellem databasen og brugeren. Det giver centraliseret kontrol af databeskyttelse og integritet, dataadgang, behandling, databasebaseret rapportering og andre operationer og procedurer.

Relationel Database Management System (RDBMS)

Sættet af værktøjer til styring af RDB kaldes relationelt databasestyringssystem , som kan indeholde hjælpeprogrammer, applikationer, tjenester, biblioteker, applikationsskabelsesværktøjer og andre komponenter. Ved at være linket gennem fælles nøglefelter kan information i en RDB kombineres fra flere tabeller til et enkelt resultatsæt.

Hoved funktioner RDBMS er:

· Data Definition– hvilke oplysninger der vil blive gemt, indstil databasestrukturen og deres type.

· Databehandling– du kan vælge alle felter, sortere og filtrere data. Du kan kombinere data og opsummere.

· Datastyring– rette og tilføje data.

6. Generelle karakteristika for ACCESS DBMS

Microsoft Access er et funktionelt komplet relationelt DBMS, som giver alle de nødvendige værktøjer til at definere og behandle data, samt til at administrere dem, når der arbejdes med store mængder information. Dens forskellige versioner er en del af MS Office-softwarepakken og fungerer i Windows-miljøet (3.11/95/98/2000/XP).

Databasevindue i Access

Efter at have oprettet en ny databasefil eller åbnet en eksisterende i arbejdsområdet i Access-vinduet, vises databasevinduet:


Relationel database - grundlæggende begreber

Ofte, når man taler om en database, betyder de simpelthen noget automatisk datalagring. Denne idé er ikke helt korrekt. Hvorfor det er sådan vil blive vist nedenfor.

Faktisk, i ordets snævre betydning, er en database et bestemt sæt data, der er nødvendigt for arbejdet (up-to-date data). Data er imidlertid en abstraktion; ingen har nogensinde set "bare data"; de opstår eller eksisterer ikke af sig selv. Data er en afspejling af objekter i den virkelige verden. Lad, for eksempel, du ønsker at gemme oplysninger om dele modtaget på lageret. Hvordan vil et objekt fra den virkelige verden - en del - blive vist i databasen? For at besvare dette spørgsmål skal du vide, hvilke funktioner eller aspekter af delen, der vil være relevante og nødvendige for jobbet. Disse kan omfatte navnet på delen, dens vægt, dimensioner, farve, fremstillingsdato, materiale, hvoraf den er lavet osv. I traditionel terminologi kaldes objekter fra den virkelige verden, hvis information er gemt i en database, entiteter (lad ikke dette ord skræmme læseren - dette er et generelt accepteret udtryk), og deres faktiske egenskaber kaldes attributter.

Hver attribut for et bestemt objekt er en attributværdi. Motordelen har således en vægtattributværdi på 50, hvilket afspejler, at denne motor vejer 50 kg.

Det ville være en fejl at tro, at kun fysiske objekter afspejles i databasen. Det er i stand til at absorbere information om abstraktioner, processer, fænomener - det vil sige om alt, hvad en person møder i sine aktiviteter. For eksempel kan du i en database gemme information om ordrer til levering af dele til et lager (selvom det ikke er et fysisk objekt, men en proces). Attributterne for "ordre"-enheden vil være navnet på den del, der leveres, antallet af dele, navnet på leverandøren, leveringstid osv.

Objekter i den virkelige verden er forbundet med hinanden af ​​mange komplekse afhængigheder, der skal tages i betragtning i informationsaktiviteter. For eksempel leveres dele til lageret af deres producenter. Derfor er det nødvendigt at inkludere attributten "producentens navn" blandt delattributterne. Dette er dog ikke nok, da yderligere oplysninger om producenten af ​​en bestemt del kan være nødvendige - hans adresse, telefonnummer osv. Det betyder, at databasen ikke kun skal indeholde oplysninger om reservedele og indkøbsordrer, men også oplysninger om deres producenter. Desuden skal databasen afspejle forholdet mellem dele og producenter (hver del er produceret af en specifik producent) og mellem ordrer og dele (hver ordre udstedes for en specifik del). Bemærk, at kun relevante, væsentlige forbindelser skal gemmes i databasen.

Således er en database i ordets brede forstand et sæt beskrivelser af objekter fra den virkelige verden og forbindelser mellem dem, der er relevante for et specifikt anvendelsesområde. I det følgende vil vi gå ud fra denne definition og præcisere den, efterhånden som vi går videre.

Relationel datamodel

Så nu har vi en idé om, hvad der er gemt i databasen. Nu skal vi forstå, hvordan entiteter, attributter og relationer er knyttet til datastrukturer. Dette bestemmes af datamodellen.

Traditionelt er alle DBMS'er klassificeret afhængigt af den datamodel, der ligger til grund for dem. Det er sædvanligt at skelne mellem hierarkiske, netværks- og relationelle datamodeller. Nogle gange er de suppleret med en datamodel baseret på omvendte lister. Derfor taler de om hierarkisk, netværk, relationel DBMS eller DBMS baseret på inverterede lister.

Med hensyn til udbredelse og popularitet er relationelle DBMS'er i dag uovertruffen. De er blevet en de facto industriel standard, og derfor vil den private bruger skulle forholde sig til et relationelt DBMS i deres praksis. Lad os kort se på den relationelle datamodel uden at dykke ned i dens detaljer.

Den blev udviklet af Codd tilbage i 1969-70 på baggrund af den matematiske relationsteori og er baseret på et system af begreber, hvoraf de vigtigste er tabel, relation, række, kolonne, primærnøgle, fremmednøgle.

En relationel database er en, hvor alle data præsenteres for brugeren i form af rektangulære tabeller med dataværdier, og alle operationer på databasen er reduceret til manipulationer med tabeller. En tabel består af rækker og kolonner og har et navn, der er unikt i databasen. Tabellen afspejler typen af ​​objekter fra den virkelige verden (entitet), og hver af dens rækker repræsenterer et specifikt objekt. Således indeholder Part-tabellen information om alle dele, der er gemt på lageret, og dens rækker er sæt af attributværdier for specifikke dele. Hver tabelkolonne er en samling af værdier for en specifik attribut for et objekt. Så materialekolonnen repræsenterer et sæt værdier "Stål", "Tin", "Zink", "Nikkel" osv. Kolonnen Antal indeholder ikke-negative heltal. Værdierne i kolonnen Vægt er reelle tal svarende til vægten af ​​delen i kilogram.

Disse værdier vises ikke ud af den blå luft. De vælges fra sættet af alle mulige værdier for en objektattribut, som kaldes domænet. Således er værdierne i materialekolonnen valgt fra et sæt navne på alle mulige materialer - plast, træ, metaller osv. Derfor er det grundlæggende umuligt, at der vises en værdi i kolonnen Materiale, som ikke findes i det tilsvarende domæne, for eksempel "vand" eller "sand".

Hver kolonne har et navn, som normalt skrives øverst i tabellen ( Ris. 1). Det skal være unikt i tabellen, men forskellige tabeller kan have kolonner med samme navn. Enhver tabel skal have mindst én kolonne; Kolonnerne er arrangeret i tabellen efter den rækkefølge, som deres navne optrådte i, da den blev oprettet. I modsætning til kolonner har rækker ikke navne; deres rækkefølge i tabellen er ikke defineret, og deres antal er logisk ubegrænset.

Figur 1. Grundlæggende databasekoncepter.

Da rækkerne i tabellen ikke er ordnet, er det umuligt at vælge en række efter dens position - der er ingen "første", "anden" eller "sidste" blandt dem. Enhver tabel har en eller flere kolonner, hvis værdier entydigt identificerer hver af dens rækker. Denne kolonne (eller kombination af kolonner) kaldes en primær nøgle. I Part-tabellen er den primære nøgle kolonnen Part Number. I vores eksempel har hver del på lageret et enkelt nummer, hvormed den nødvendige information hentes fra Part-tabellen. Derfor er den primære nøgle i denne tabel kolonnen Delnummer. Der kan ikke være duplikerede værdier i denne kolonne - der bør ikke være rækker i Part-tabellen, der har samme værdi i Part Number-kolonnen. Hvis en tabel opfylder dette krav, kaldes det en relation.

Relationen mellem tabeller er det vigtigste element i den relationelle datamodel. Det understøttes af fremmednøgler. Lad os overveje et eksempel, hvor en database gemmer information om almindelige medarbejdere (medarbejdertabel) og ledere (ledertabel) i en eller anden organisation ( Ris. 2). Den primære nøgle i tabellen Head er kolonnen Nummer (f.eks. personalenummer). Kolonnen Efternavn kan ikke fungere som en primær nøgle, da to ledere med de samme efternavne kan arbejde i den samme organisation. Enhver medarbejder er underlagt en enkelt leder, hvilket skal afspejles i databasen. Medarbejdertabellen indeholder en kolonne Ledernummer, og værdierne i denne kolonne er valgt fra kolonnen Antal i ledertabellen (se. Ris. 2). Kolonnen Managernummer er en fremmednøgle i medarbejdertabellen.

Figur 2. Forholdet mellem databasetabeller.

Tabeller kan ikke gemmes og behandles, hvis der ikke er "data om data" i databasen, såsom håndtag til tabeller, kolonner mv. De kaldes normalt metadata. Metadata præsenteres også i tabelform og gemmes i en dataordbog.

Ud over tabeller kan databasen gemme andre objekter, såsom skærme, rapporter, visninger og endda applikationsprogrammer, der arbejder med databasen.

For brugere af et informationssystem er det ikke nok, at databasen blot afspejler objekter fra den virkelige verden. Det er vigtigt, at en sådan refleksion er entydig og konsekvent. I dette tilfælde siges databasen at opfylde integritetsbetingelsen.

For at garantere dataens korrekthed og gensidige konsistens pålægges databasen visse begrænsninger, som kaldes dataintegritetsbegrænsninger.

Der er flere typer af integritetsbegrænsninger. Det kræves for eksempel, at værdierne i en tabelkolonne kun vælges fra det tilsvarende domæne. I praksis tages der også højde for mere komplekse integritetsbegrænsninger, for eksempel referentiel integritet. Dens essens er, at en fremmednøgle ikke kan være en pegepind til en ikke-eksisterende række i tabellen. Integritetsbegrænsninger implementeres ved hjælp af særlige midler, som vil blive diskuteret i Sec.Database server .

SQL sprog

Selve dataene i computerform er ikke af interesse for brugeren, hvis der ikke er mulighed for at få adgang til dem. Data tilgås i form af databaseforespørgsler, der er formuleret i et standardforespørgselssprog. I dag er dette sprog SQL for de fleste DBMS'er.

Fremkomsten og udviklingen af ​​dette sprog som et middel til at beskrive databaseadgang er forbundet med skabelsen af ​​teorien om relationelle databaser. Prototypen af ​​SQL-sproget opstod i 1970 som en del af System/R-forskningsprojektet, som blev udført på Santa Teresa-laboratoriet hos IBM. I dag er SQL standardgrænsefladen med relationel DBMS. Dens popularitet er så stor, at udviklere af ikke-relationelle DBMS'er (for eksempel Adabas) forsyner deres systemer med en SQL-grænseflade.

SQL-sproget har en officiel standard - ANSI/ISO. De fleste DBMS-udviklere overholder denne standard, men udvider den ofte til at implementere nye databehandlingsfunktioner. Nye datahåndteringsmekanismer, der vil blive beskrevet i Sec.Database server , kan kun bruges gennem specielle SQL-sætninger, som generelt ikke er inkluderet i sprogstandarden.

SQL er ikke et traditionelt programmeringssprog. Der skrives ikke programmer i den, men forespørgsler til databasen. Det er derfor SQL er et deklarativt sprog. Det betyder, at det kan bruges til at formulere, hvad der skal skaffes, men det kan ikke angive, hvordan det skal gøres. Især, i modsætning til proceduremæssige programmeringssprog (C, Pascal, Ada), har SQL-sproget ikke operatører såsom if-then-else, for, while osv.

Vi vil ikke gå i detaljer om sprogets syntaks. Vi vil kun berøre det i det omfang, det er nødvendigt for at forstå simple eksempler. Med deres hjælp vil de mest interessante databehandlingsmekanismer blive illustreret.

En SQL-forespørgsel består af en eller flere sætninger, den ene efter den anden, adskilt af et semikolon. Tabel 1 nedenfor viser de vigtigste operatører, der er inkluderet i ANSI/ISO SQL-standarden.

Tabel 1. Grundlæggende SQL-operatorer.

SQL-forespørgsler bruger navne, der entydigt identificerer databaseobjekter. Dette er især tabelnavnet (Detalje), kolonnenavnet (Titel) samt navnene på andre objekter i databasen, der tilhører yderligere typer (for eksempel navne på procedurer og regler), som vil blive diskuteret i Sec.Database server . Sammen med simple bruges også komplekse navne - for eksempel bestemmer et kvalificeret kolonnenavn navnet på kolonnen og navnet på den tabel, den hører til (Part.Weight). For nemheds skyld vil navne i eksemplerne blive skrevet på russisk, selvom det i praksis ikke anbefales.

Hver kolonne i enhver tabel gemmer specifikke typer data. Der er grundlæggende datatyper - tegnstrenge med fast længde, heltal og reelle tal og yderligere datatyper - tegnstrenge med variabel længde, monetære enheder, dato og klokkeslæt, logiske data (to værdier - "TRUE" og "FALSE" ). I SQL kan du bruge numeriske, strenge, tegn og dato- og tidskonstanter.

Lad os se på et par eksempler.

Forespørgslen "bestem antallet af dele på lager for alle typer dele" implementeres som følger:

VÆLG navn, mængde

FRA Del;

Resultatet af forespørgslen vil være en tabel med to kolonner - Navn og Antal, som er taget fra den originale deltabel. I det væsentlige giver denne forespørgsel dig mulighed for at få en lodret projektion af den originale tabel (mere strengt taget en lodret delmængde af sæt tabelrækker). Fra alle rækker i deltabellen dannes rækker, der inkluderer værdier taget fra to kolonner - Navn og Antal.

Forespørgslen "Hvilke ståldele er på lager?" formuleret i SQL ser sådan ud:

FRA del

WHERE Materiale = "Stål";

Resultatet af denne forespørgsel vil også være en tabel, der kun indeholder de rækker i kildetabellen, der har værdien "Stål" i kolonnen Materiale. Denne forespørgsel giver dig mulighed for at få en horisontal projektion af Part-tabellen (stjernen i SELECT-sætningen betyder, at du vælger alle kolonner fra tabellen).

Anmodningen "om at bestemme navnet og mængden af ​​dele på lager, der er lavet af plast og vejer mindre end fem kg" vil blive skrevet som følger:

VÆLG navn, mængde

FRA del

WHERE Materiale = "Plastik"

OG vægt< 5;

Resultatet af forespørgslen er en tabel med to kolonner - Navn, Mængde, som indeholder navn og antal dele lavet af plast og vejer mindre end 5 kg. I det væsentlige er prøvetagningsoperationen operationen med først at danne en vandret projektion (find alle rækker i deltabellen, for hvilke Materiale = "Plastic" og Vægt< 5), а затем вертикальной проекции (извлечь Название и Количество из выбранных ранее строк).

Et af de værktøjer, der giver hurtig adgang til tabeller, er indekser. Et indeks er en databasestruktur, der er en pegepind til en bestemt række i en tabel. Et databaseindeks bruges på samme måde som et indeks i en bog. Den indeholder værdier taget fra en eller flere kolonner i en bestemt tabelrække og en reference til denne række. Værdierne i indekset er ordnet, hvilket gør det muligt for DBMS hurtigt at søge i tabellen.

Lad os antage, at en forespørgsel er formuleret til Warehouse-databasen:

VÆLG Navn Mængde, Materiale

FRA del

WHERE nummer = "T145-A8";

Hvis der ikke er nogen indekser for en given tabel, så skal DBMS for at udføre denne forespørgsel scanne hele deltabellen, sekventielt vælge rækker fra den og kontrollere valgbetingelserne for hver af dem. For store tabeller vil en sådan forespørgsel tage meget lang tid at fuldføre.

Hvis der tidligere er oprettet et indeks i kolonnen Tabelnummerdetaljer, vil søgetiden i tabellen blive reduceret til et minimum. Indekset vil indeholde værdierne fra talkolonnen og et link til rækken med denne værdi i deltabellen. Når en forespørgsel udføres, vil DBMS først finde værdien "T145-A8" i indekset (og gøre dette hurtigt, da indekset er ordnet, og dets rækker er små), og derefter ved hjælp af linket i indekset bestemme fysiske placering af den søgte række.

Et indeks oprettes med SQL CREATE INDEX-sætningen. I dette eksempel er operatøren

OPRET UNIKT INDEKS Delindeks

ON-del(nummer);

vil oprette et indeks med navnet "Part Index" i kolonnen Nummer på tabellen Part.

For en DBMS-bruger er det ikke de enkelte SQL-sætninger, der er af interesse, men en bestemt rækkefølge af dem, designet som en helhed og giver mening fra hans synspunkt. Hver sådan sekvens af SQL-sætninger implementerer en specifik handling på databasen. Det udføres i flere trin, ved hver af hvilke visse operationer udføres på databasetabellerne. I banksystemet udføres overførslen af ​​et vist beløb fra en korttidskonto til en langtidskonto således i flere operationer. Blandt dem er at hæve et beløb fra en korttidskonto og kreditere det på en langtidskonto.

Hvis der er en fejl under denne handling, for eksempel når den første operation er fuldført, men den anden ikke er, så vil pengene gå tabt. Derfor skal enhver handling på databasen udføres fuldstændigt eller slet ikke udføres. Denne handling kaldes en transaktion.

Transaktionsbehandling er afhængig af en log, som bruges til at rulle transaktioner tilbage og gendanne databasens tilstand. Flere detaljer om transaktioner vil blive diskuteret i Sec.Transaktionsbehandling .

Som afslutning på vores diskussion af SQL-sproget, lad os endnu en gang understrege, at det er et forespørgselssprog. Det er umuligt at skrive et komplekst applikationsprogram, der fungerer med en database. Til dette formål bruger moderne DBMS'er fjerde generations sprog (Forth Generation Language - 4GL), som både har de grundlæggende funktioner i tredje generations proceduresprog (3GL), såsom C, Pascal, Ada og evnen til at indlejre SQL sætninger ind i programteksten, samt brugergrænsefladekontroller (menuer, formularer, brugerinput osv.). I dag er 4GL en af ​​de facto-standarderne for udviklingsværktøjer til databaseapplikationer.