Databasorganisationsmodeller. Relationsdatabasmodell


Skicka ditt bra arbete i kunskapsbasen är enkel. Använd formuläret nedan

Bra jobbat till webbplatsen ">

Studenter, doktorander, unga forskare som använder kunskapsbasen i sina studier och arbete kommer att vara mycket tacksamma för dig.

Publicerat på http://www.allbest.ru/

Ryska federationens utbildningsministerium

Penza State University

Fakulteten för datavetenskap

Institutionen för informations- och datorsystem

Disciplin "Databaser"

Laborationsrapport nr 1

Databasoperationer

Avslutat: st-ka gr. 13VE1

Yudina S.V.

Godkänd: Teknisk kandidat, docent

Dolgova I.A.

  • 1. Syfte med arbetet
  • Träning
  • 2. Utförande av arbete
  • Skapa databas
  • Databasregistrering
  • Databasanslutning
  • Extrahera metadata
  • Ta bort en databas
  • Slutsats
  • Ansökningar

1. Syfte med arbetet

Undersök databasoperationer i allmänhet. Få färdigheterna att använda "IBExpert" -programmet för att skapa, ta bort, registrera, ansluta, extrahera metadata, Reservkopia och återställa Firebird -databasen. Undersök SQL -satserna för att skapa, ansluta och släppa en databas.

Träning

1) Undersök databasoperationer i allmänhet.

2) Få färdigheterna för att använda "IBExpert" -programmet för att skapa, ta bort, registrera, ansluta, extrahera metadata, säkerhetskopiera och återställa Firebird -databasen.

3) Lär dig SQL -satser för att skapa, ansluta och släppa en databas.

För variant 17 är initialdata namnet på filen med databasen - YudinaDom1. FDB, inloggning - TEAM001, lösenord - slave001.

2. Utförande av arbete

Skapa databas

En databas skapades med IBExpert -verktyget. I det här fallet, eftersom databasservern användes Fjärrserver heter sqledu03.

Databasfilen heter D: \ Data \ Lr1 \ YudinaDom1. FDB, Server - fjärrkontroll, Servernamn - sqledu03, Protokoll - TCP / IP, Klientbiblioteksfil - C: \ Program Files \ Firebird \ Firebird_2_5 \ bin \ fbclient. dll, Användarnamn - TEAM001, Lösenord - slave001, DB -sidstorlek - 16384, Kodning - WIN1251, DB -dialekt - Dialekt 3.

Databasen är registrerad under namnet YudinaDom1. FDB. I det här fallet användes Firebird version 2.5 -servern (se bilaga A, bild 1. Databasskapning).

Databasregistrering

Om du vill registrera en databas väljer du menyalternativet Databas > Registrera basen. Som ett resultat öppnas dialogrutan "Registrera databas" där du måste fylla i nästan samma fält som när du skapar databasen och klicka sedan på knappen. Efter registrering sparas all information som angetts om databasen av IBExpert -programmet och en nod med den registrerade databasen läggs till i trädet på fliken Databaser i fönstret "Databasutforskare" (se bilaga A, bild 2. Databasregistrering) .

säkerhetskopiering av basoperatör

Databasanslutning

För att ansluta till en registrerad databas, välj en databas i listan och kör kommandot Databas> Anslut till databas. Namnet på den anslutna databasen markeras i fönstret "Databasutforskare" i fetstil, och även kapslade noder med objekt i den anslutna databasen visas (se bilaga A, fig. 3. Ansluter till databasen).

Extrahera metadata

För att extrahera metadata, använd kommandot Verktyg> Metadataxtraktion som öppnar fönstret "Extraktionsmetadata". Markera kryssrutan "Extract all" i fönstret, använd sedan "Extract to" i rullgardinsmenyn, välj "Script Executive", i vilken metadata ska extraheras, och klicka sedan på knappen [Starta extraktion] (se bilaga A, Fig. 4. Extrahera metadata). Efter extrahering öppnas fönstret Script Editor som innehåller de extraherade metadata. (Se bilaga A, fig. 5. Extrahering av metadata (scriptredigerare)).

Ta bort en databas

För att radera en databas, välj menykommandot Databas> Radera databas och bekräfta sedan önskan i dialogrutan. (Se bilaga A, fig. 6. Radera en databas (databasmeny)).

Skapa en databas med "Script Editor"

För att skapa en databas är det nödvändigt att utföra kommandot Verktyg> Skriptredigerare i programmet IBExpert, ange sedan kommandona som skapar databasen i fönstret "Skriptredigerare" och klicka på [Utför skript] -knappen (se bilaga A, fig. 7. Skapa en databas (skriptredigerare). Som ett resultat bör ett meddelande visas om framgångsrikt genomförande manus. För ytterligare arbete måste du omregistrera databasen och ansluta till den.

Säkerhetskopiering och återställning av databas

För att skapa en databas -säkerhetskopia med programmet "IBExpert", kör kommandot Services> Database backup, ställ in flera parametrar i dialogrutan "Database backup" som öppnas och klicka på [Start backup] -knappen. Som ett resultat skapas en fil med en säkerhetskopia (se bilaga A, fig. 8. Säkerhetskopiering).

Om du vill återställa en databas från en säkerhetskopia använder du kommandot Tjänster> Databasåterställning. Som ett resultat öppnas dialogrutan "Databasåterställning", där det är nödvändigt att välja raden " Ny bas", i fältet" Databasfil "anger du namnet på den återställda databasfilen (SQLEDU03: D: \ DATA \ Lr1 \ YudinaDom1. FDB), i fältet" Filnamn "anger du namnet på filen från vilken databasen återställs och klicka sedan på (Se bilaga A, bild 9. Databasåterställning).

Filer som mottogs under körningen laboratoriearbete.

Skriptet för att skapa en databas har redigerats. (Se bilaga A, fig. 10. Databasskriptredigerare). Skriptfilen sparas på servern i mappen "ЛР1" med samma namn som databasnamnet, standardtillägget är ". Sql".

Som ett resultat av laboratoriearbetet skapades följande filer:

1) Skript - D: \ Data \ Lr1 \ YudinaDom1. kvm

2) DB - D: \ Data \ Lr1 \ YudinaDom1. fdb

3) Säkerhetskopia DB - D: \ Data \ Lr1 \ YudinaDom1. fbk

4) Fil med rapporten - D: \ Data \ Lr1 \ Report1. odt

Svar på säkerhetsfrågor

1. Ge en definition av termen "Databas".

En databas är en uppsättning stabila data som återspeglar objekts tillstånd och deras relationer i det aktuella ämnesområde och används applikationssystem vilket företag som helst.

2. Vad betyder förkortningarna DBMS och DBMS?

Databashanteringssystem. Databashanteringssystem.

3. Vilka operationer utförs med databasen som helhet?

Lägga till ny data, radera, redigera.

4. Vad är Firebird -databasen? Hur stor är databasfilen? Vad beror det på? Vad finns i databasfilen?

Firebird DBMS är relationellt DBMS designad för användning i klient / server -applikationer. I Firebird är en databas en eller flera filer som lagrar användardata och metadata - 2,40 MB. Från mängden information som finns. Primära filer data, sekundära datafiler och loggfiler.

Storleken påverkar effektiviteten hos DBMS, det rekommenderas att göra sidstorleken lika med klusterstorleken filsystem, standard sidstorlek är 16384.

6. Vad ska man göra för att lagra tecknen i det ryska alfabetet i databasen?

Inmatningsfältet "Kodning" används för att välja teckenuppsättningen för det nationella alfabetet för databasens textfält. Ryssar Windows -symboler finns i Win1251 -kodning. Om du anger INGET i det här fältet stöds den kodning som används av operativsystemet.

7. Nämn skillnaderna mellan databasens första och tredje dialekt.

I dialekt 3, till skillnad från dialekt 1, används en utökad uppsättning datatyper, fallet med identifierare skrivna i dubbla citat och implicit datatypsgjutning stöds inte.

8. Vad är sätten att skapa och ta bort en databas?

Du kan använda ett av två sätt att skapa en databas:

1. Utför kommandot Databas> Skapa databas i programmet IBExpert anger du parametrarna basen som skapas data i dialogrutan "Skapa databas" och klicka på [ OK].

2. Kör kommandot i programmet IBExpert Verktyg> Skriptredigerare, ange sedan kommandona som skapar databasen i fönstret "Skriptredigerare" och klicka på [ Kör skript] (F9).

För borttagning:

1. I programmet "IBExpert", kör menykommandot Databas> Radera databas och bekräfta sedan din önskan i dialogrutan.

2. Kör SQL -satsen DROP DATABASE.

3. Radera filen med databasen manuellt.

9. Hur anges sökvägen till filen med databasen på fjärrdatorn?

Servernamn: Filväg (sqledu03: D: \ Data \ Lr1 \ YudinaDom1. Fdb)

10. Vad standardtillägg har databas- och skriptfiler?

Databasfil ". Fdb", skript ". Sql".

11. Hur kan jag ansluta till den befintliga databasen som finns på den lokala datorn med programmet "IBExpert"?

För att ansluta till en registrerad databas, välj rätt bas data i listan och kör kommandot Databas> Anslut till databas, eller gör dubbelklicka med musen på namnet på den valda databasen.

12. Vad är Firebird -serverns administratörs namn och lösenord?

Namn: SYSDBA, lösenord: huvudnyckel.

13. Vilka typer av kommentarer kan skriptfiler innehålla för att utföra databasoperationer?

Ett skript kan innehålla två typer av förklarande kommentarer: en kommentar med flera rader (börjar med " / *" och slutar med " * /") och en enradig kommentar som börjar med "-" och fortsätter till slutet av raden .

14. Hur många systemtabeller innehåller den skapade databasen? Vilka karaktärer börjar de med? Ge namnen på alla 3 systemtabeller.

34 bord. Börjar med "sys". Exempel: "sys. Sysschobjs" - Finns i varje databas. Varje rad representerar ett databasobjekt; "sys. sysscalartypes" - Finns i varje databas. Innehåller en rad för varje system eller anpassad typ data; sys. sysowners - Finns i varje databas. Varje rad motsvarar en databasmedlem.

15. Vilka regler gäller för textformatering av manus?

Uttryck i ett uttalande börjar alltid med ny linje, indragna 1 position från den högra kanten av uttalandets förälder (VÄLJ, FRÅN, VAR, IN, ...). Operatörer i skriptet separeras från varandra med ";". Vid deklaration av tabeller, kolumnnamn, typer, standardvärden, begränsas Nullable-begränsningar.

Slutsats

Under laboratoriearbetet studerades operationerna med databaserna i allmänhet. Kunskaperna att använda "IBExpert" -programmet för att skapa, ta bort, registrera, ansluta, extrahera metadata, säkerhetskopiera och återställa Firebird -databasen har förvärvats. Undersökte SQL -satser för att skapa, ansluta och släppa en databas.

Publicerat på Allbest.ru

Liknande dokument

    Databashanteringssystem (DBMS). Programvaruverktyg för att skapa, fylla, uppdatera och ta bort en databas. Uppbyggnad, modeller och klassificering av databaser. Skapande av kataloger, alias, tabeller, mallar och DBMS -formulär.

    presentation läggs till 2014-09-01

    Design relationsbas data med programmet mjukvaruverktyg MS -TILLGÅNG. Beskriver detaljer om hur man använder frågor för att hämta, ändra och ta bort information från en databas. Egenskaper för användargränssnittets struktur.

    termen läggs till 19/11/2012

    Databas klassificering. Välja ett databashanteringssystem för att skapa en databas i nätverket. Snabb åtkomst och få specifik information om funktioner. Funktionsfördelning vid arbete med en databas. Huvuddragen i den hierarkiska modellen.

    övningsrapport, tillagd 10/08/2014

    Beskrivningsspråk Oracle -data... Syftet med databasen är att lagra information. Skapa och ändra tabeller med hjälp av tabelluttagarna Skapa och ändra. Regler för namngivning av tabeller. Byt namn på och avkorta operatörer. En metod för att skapa och ta bort en vy.

    presentation läggs till 2014-02-14

    Mekanismen och huvudstadierna för att skapa och administrera en databas för en bok eller biblioteksfil med Microsoft -medel SQL Server... Egenskaper hos denna bas och kraven för den. Grundläggande operationer med den undersökta databasen.

    term paper, tillagd 21/06/2011

    Begreppet en relationsdatamodell, integriteten i dess väsen och länkar. De viktigaste stadierna för att skapa en databas, länka tabeller på dataskemat. Utforma databasen för bokkatalogen "Böcker" med DBMS Microsoft Access och SQL -frågespråket.

    term paper, tillagt 25/11/2010

    Fysisk och logiska modeller fjärrdatabas för bensinstation. Databasutveckling i Firebird DBMS med IBExpert -verktyget. Skapande klientapplikation för Windows som använder klient-server-teknik i C ++ Builder-miljön.

    term paper, tillagd 18/01/2017

    Databasskapande i MS Access -miljö. Skapa och arbeta med en databas i studion. Algoritm för att lösa problemet. Paketval applikationsprogram... Designa former för utdata med MS Access DBMS. Databas tabell post struktur.

    term paper, tillagd 30/01/2009

    DBMS - databashanteringssystem för flera användare, specialiserat på att hantera en mängd information. Urvalsförfrågningar och datamodifiering, generering av rapporter om urvalsförfrågningar. Databasschema. Databashanteringsprogram.

    abstrakt tillagd 27/12/2013

    Syftet med databasen för att säkerställa driften av bussflottan. Huvudfunktionerna i adminpanelen. Funktioner som utförs av databasen och applikationen. Infologisk datamodellering. Beskrivning av den utvecklade webbapplikationen. Databasdesign.

Databasoperationer

Det vanliga sättet att komma åt databasdata är att ange med en associerad adress (mönster) som utförs av "mönstersökning" -operationen. Mönstresökargumentet är en struktur som kan variera mycket beroende på databasens funktioner. Resultatet av denna operation är en uppsättning (möjligen tom - negativt resultat) av alla referenser i mönsterargumentet, d.v.s. fragment av databasen, som var och en är ett svar på en fråga, specificerat i form av detta prov.

Flera typer av prover kan särskiljas.

Enkelt provär ett fragment av en struktur av samma typ som trådramen. Vid hörnen i ett enkelt mönster kan komponenter delvis anges, till exempel bara namnet eller bara typen. Arten av proceduren som implementeras av mönstersökningsoperationen kan vara av två typer:

Exakt matchning - referenter är isomorfa för provet upp till saknade element i provet;

Beläggning - kan utföras i fall där delordning anges över symboler som fungerar som mönsterelement. I det här fallet är referenterna fragmenten av ramen som täcks av provet, i den meningen att graferna för provet och referenten är isomorfa, och elementen i provet sammanfaller antingen med motsvarande symbol för referenten, eller är ligger ovanför den i hierarkin.

Sprängprov - det är en samling enkla prover som är förbundna med bågar av en speciell typ som saknas i ramen. I detta fall är graferna för provet och referenten inte isomorfa, eftersom det inte finns några speciella bågar i den senare. Vi kan säga att med ett diskontinuerligt mönster sker sökningen inte på själva ramverket, utan på dess transitiva stängning över en eller flera typer av relationer. B. Ett mönster med negativt sammanhang är ett par

< положительный образец, отрицательный образец >,

där var och en av proverna är enkel eller diskontinuerlig. Sökproceduren för ett sådant mönster definieras enligt följande. En sökning utförs på det positiva mönstret som hittats av referenten R identifierar vertexnamnen som är gemensamma för positiva och negativa mönster. Dessa namn ersätts på lämpliga positioner i det negativa mönstret, som söks igen. Om referensuppsättningen är tom i det här fallet, då R accepteras som referens för mönstersökning med negativt sammanhang. Annars ger sökningen inget resultat.

Brist på kommunikation mellan positiva och negativa prover representerar specialfall proceduren som beskrivs ovan, där båda proverna söks oberoende av varandra och övergripande resultat definieras på samma sätt.

Komplex prov -är en samling av de typer av prover som anges ovan. Resultatet av en sökning efter ett komplext mönster är en kombination av sökprocedurer för vart och ett av proverna i befolkningen.

Vi kommer att dela in "mönstersökning" -operationen i två huvudtyper: enkelvariant och multivariat Sök.

Vid en sökning med en variant i databasen hittas en enda (första lämplig) referens, medan i en sökning med flera varianter fortsätter processen tills alla möjliga fragment av databasen som kan vara referenser för ett givet prov har hittats.

En av de viktiga faktorerna som avgör resultatet av "sök efter mönster" -operationen i en sökning med en variant är huruvida skanningsordningen för trådramen är fast eller inte när man utför "sök efter mönster" -operationen. Till exempel, med en trådram, kan detta ses från vänster till höger eller höger till vänster, med ett träd - från rot till blad eller i motsatt riktning. Där visningsordern är yttre egenskap databas kan den fixas (inbyggd) eller ändras direkt (kan anpassas).

En annan operation i databasen är att lägga till. Poängen med denna operation är att bifoga ny data till data i databasen. Argumentet till denna operation har två delar: den första är fragmentet som är kopplat till databasen och har samma organisation, d.v.s. består av en trådram och en uppsättning komponenter som är associerade med dess hörn; den andra delen är i allmänhet en associativ adress som anger till vilka hörn av ramverket det nya fragmentet kommer att fästas.

Relationsalgebra är baserad på uppsättningsteori och ligger till grund för databasens logik.
När jag just studerade strukturen för databaser och SQL, hjälpte en inledande bekantskap med relationsalgebra starkt mina ytterligare kunskaper för att få det rätt i mitt huvud, och jag kommer att försöka få den här artikeln att ha en liknande effekt.

Så om du ska börja dina studier på detta område eller om du bara blir intresserad, snälla, under katt.

Relationsdatabas

Till att börja med kommer vi att introducera begreppet en relationsdatabas där vi kommer att utföra alla åtgärder.

En relationsdatabas är en uppsättning relationer som innehåller all information som måste lagras i databasen. V denna definition vi är intresserade av begreppet relation, men för nu lämnar vi det utan en strikt definition.
Låt oss bättre föreställa oss ett bord med produkter.

PRODUKTER bord

ID NAMN FÖRETAG PRIS
123 Småkakor LLC "Dark Side" 190
156 Te LLC "Dark Side" 60
235 Ananas JSC "Frukt" 100
623 Tomater LLC "Grönsaker" 130

Tabellen består av 4 rader, en rad i tabellen är en tupel i relationsteori. Uppsättningen av beställda tupler kallas en relation.
Innan vi definierar en relation, låt oss introducera en term till - domän. Domäner i förhållande till en tabell är kolumner.

För tydlighetens skull introducerar vi nu en strikt definition av förhållandet.

Låt N -uppsättningar D1, D2, ... ges. Dn (domäner), förhållandet R över dessa uppsättningar är uppsättningen ordnade N-tupler av formen , där d1 tillhör D1, och så vidare. Uppsättningarna D1, D2, .. Dn kallas domäner för relationen R.
Varje element i tupeln representerar värdet på ett av attributen som motsvarar en av domänerna.

Nycklar i ett förhållande
När det gäller kravet är att alla tupler måste vara olika. Det finns en primärnyckel för att identifiera en tupel på ett unikt sätt. En primär nyckel är ett attribut, eller en uppsättning med ett minimum antal attribut, som unikt identifierar en viss tupel och inte innehåller ytterligare attribut.
Det är underförstått att alla attribut i primärnyckeln måste vara nödvändiga och tillräckliga för att identifiera en viss tupel, och att utesluta något av attributen i nyckeln skulle göra den otillräcklig för identifiering.
Till exempel i en sådan tabell kommer nyckeln att vara en kombination av attribut från den första och andra kolumnen.

DRIVERS bord

Det kan ses att en organisation kan ha flera drivrutiner, och för att identifiera en förare på ett unikt sätt krävs både värdet från kolumnen "Organisationsnamn" och "Förarnamn". En sådan nyckel kallas en sammansatt nyckel.

I en relationsdatabas är tabeller sammankopplade och relaterar till varandra som master och underordnad. Förhållandet mellan master- och underordnade tabeller är genom huvudnyckeln i mastertabellen och extern nyckel(främmande nyckel) underordnad tabell.
En främmande nyckel är ett attribut eller en uppsättning attribut som är huvudnyckeln i huvudtabellen.

Denna förberedande teori är tillräcklig för att bekanta dig med de grundläggande operationerna. relationsalgebra.

Relationsalgebraoperationer

De åtta huvudsakliga operationerna för relationsalgebra föreslogs av E. Codd.
  • Union
  • Korsning
  • Subtraktion
  • kartesisk produkt
  • Prov
  • Utsprång
  • Förening
  • Division
Första halvan av operationerna liknar samma operationer på uppsättningar. Vissa operationer kan uttryckas genom andra operationer. Låt oss överväga de flesta operationerna med exempel.

För förståelse är det viktigt att komma ihåg att resultatet av en operation av algebra över relationer är en annan relation, som sedan också kan användas i andra operationer.
Låt oss skapa en annan tabell som kommer att vara användbar för oss i exemplen.

SÄLJARE bord

ID SÄLJARE
123 OOO "Dart"
156 OJSC "hink"
235 JSC "Vegetable Baza"
623 JSC "Firm"

Låt oss komma överens om att i denna tabell är ID en främmande nyckel som är associerad med primärnyckeln i PRODUCTS -tabellen.

Låt oss börja med att titta på den enklaste operationen - namnet på förhållandet. Dess resultat blir samma relation, det vill säga genom att utföra PRODUKTER -operationen får vi en kopia av PRODUCTS -relationen.

Utsprång
Projektion är en operation där endast attribut från de angivna domänerna extraheras från relationen, det vill säga bara önskade kolumner Dessutom, om flera identiska tupler erhålls, återstår bara en instans av en sådan tupel i den resulterande relationen.
Låt oss till exempel göra en projicering på PRODUCTS -tabellen genom att välja ID och PRIS från den.

Operationssyntax:
π (ID, PRIS) PRODUKTER

I provtillståndet kan vi använda alla booleskt uttryck... Låt oss göra ett nytt prov med ett pris som är högre än 90 och ett produkt -ID mindre än 300:

σ (PRIS> 90 ^ ID<300) PRODUCTS

Multiplikation
Multiplikation eller kartesisk produkt är en operation som utförs på två relationer, vilket resulterar i att vi får en relation med alla domäner från två initiala relationer. Tupler i dessa domäner kommer att representera alla möjliga kombinationer av tupler från det ursprungliga förhållandet. Ett exempel kommer att göra det tydligare.

Vi får de kartesiska produkterna i tabellerna PRODUKTER och SÄLJARE.
Operationssyntax:

PRODUKTER × SÄLJARE
Du kommer att märka att dessa två tabeller har samma domän -ID. I denna situation har domäner med samma namn prefix med namnet på motsvarande relation, som visas nedan.
För korthet multiplicerar vi inte de fullständiga relationerna, utan proverna med tillstånds -ID<235

(samma tupler är markerade i färg)

PRODUCTS.ID NAMN FÖRETAG PRIS SELLERS.ID SÄLJARE
123 Småkakor LLC "Dark Side" 190 123 OOO "Dart"
156 Te LLC "Dark Side" 60 156 OJSC "hink"
123 Småkakor LLC "Dark Side" 190 156 OJSC "hink"
156 Te LLC "Dark Side" 60 123 OOO "Dart"

För ett exempel på hur du använder den här operationen, låt oss föreställa oss behovet av att välja säljare med priser mindre än 90. Utan en produkt skulle det vara nödvändigt att först hämta produkt -ID: n från den första tabellen, sedan med dessa ID: er från den andra tabellen, få de nödvändiga SÄLJARE -namnen, och om du använder produkten kommer det att finnas följande fråga:

π (SÄLJARE) σ (RODUCTS.ID = SELLERS.ID ^ PRICE<90) PRODUCTS × SELLERS

Som ett resultat av denna operation får vi sambandet:

SÄLJARE
OJSC "hink"
Bindning och naturlig bindning
Kopplingsoperationen är motsatsen till projektionsoperationen och skapar en ny relation från två befintliga. Den nya relationen erhålls genom att koppla ihop tuplerna för de första och andra relationerna, och relationer där värdena för de givna attributen sammanfaller sammanfogas. I synnerhet om du går med i PRODUKTER och SÄLJARE -relationer är dessa attribut attributen för ID -domänerna.

För tydlighetens skull kan du föreställa dig anslutningen som ett resultat av två operationer. Först tas produkten från de ursprungliga tabellerna, och sedan gör vi ett urval ur det resulterande förhållandet med villkoret för att attribut ska vara lika från samma domäner. I detta fall är villkoret lika med PRODUCTS.ID och SELLERS.ID.

Låt oss försöka ansluta PRODUKTER och SÄLJARE -relationer och få relationen.

PRODUCTS.ID NAMN FÖRETAG PRIS SELLERS.ID SÄLJARE
123 Småkakor LLC "Dark Side" 190 123 OOO "Dart"
156 Te LLC "Dark Side" 60 156 OJSC "hink"
235 Ananas JSC "Frukt" 100 235 JSC "Vegetable Baza"
623 Tomater LLC "Grönsaker" 130 623 JSC "Firm"

En naturlig koppling får ett liknande förhållande, men om vi har ett korrekt konfigurerat schema i databasen (i detta fall är den primära nyckeln i tabellen PRODUKT -ID länkad till den främmande nyckeln i SÄLJARE -ID -tabellen), så kvarstår den resulterande relationen en ID -domän.

Operationssyntax:
PRODUKTER ⋈ SÄLJARE;

Du får den här inställningen:

PRODUCTS.ID NAMN FÖRETAG PRIS SÄLJARE
123 Småkakor LLC "Dark Side" 190 OOO "Dart"
156 Te LLC "Dark Side" 60 OJSC "hink"
235 Ananas JSC "Frukt" 100 JSC "Vegetable Baza"
623 Tomater LLC "Grönsaker" 130 JSC "Firm"
Korsning och subtraktion.
Resultatet av korsningsoperationen blir en relation som består av tupler som är helt inkluderade i båda relationerna.
Resultatet av subtraktionen är en relation som består av tupler som är tupler av den första relationen och inte är tupler av den andra relationen.
Dessa operationer liknar samma operationer på uppsättningar, så jag tror att det inte är nödvändigt att beskriva dem i detalj.
Informationskällor
  • Grunderna för att använda och designa databaser - V.M. Ilyushechkin
  • föreläsningar Introduktion till databaser - Jennifer Widom, Stanford University

Jag skulle vara tacksam för väl motiverade kommentarer.

Förhållandet mellan ägarregistret och medlemsregistret är också 1: N.

Den största skillnaden mellan dessa modellerär att i en nätverksmodell kan en post vara medlem i mer än en grupprelation. Enligt denna modell heter varje grupprelation och man gör skillnad mellan dess typ och instans. Typen av grupprelation anges av dess namn och definierar de egenskaper som är gemensamma för alla instanser av denna typ. En instans av en grupprelation representeras av en ägarpost och en uppsättning (möjligen tom) av underordnade poster. Det finns dock följande begränsning: kopia av posten kan inte vara medlem i två instanser av grupprelationer av samma typ (dvs den anställde från exemplet i s..1 kan till exempel inte arbeta på två avdelningar).

  • träd (a) och (b) som visas i fig. 4.2 ersätts av en enda nätverksstruktur där EMPLOYEE -posten ingår i två grupprelationer;
  • för att visa typ M: N, matas posten EMPLOYEE_CONTRACT, som inte har några fält och endast används för att länka CONTRACT- och EMPLOYEE -posterna (se bild 4.3). Observera att användbar information också kan lagras i denna post, till exempel den anställdes andel av den totala ersättningen enligt detta kontrakt.


Ris. 4.3.

Varje instans av en grupprelation kännetecknas av följande funktioner:

Ordning av underordnade poster:

  • slumpmässig,
  • kronologisk / kö /,
  • omvänd kronologisk / stack /,
  • blandad.

Om en post förklaras underordnad i flera grupprelationer, kan var och en av dem tilldelas en annan beställningsmetod.

Inkluderingsläge för underordnade poster:

  • automatisk - det är omöjligt att skriva in en post i databasen utan att den omedelbart tilldelas en viss ägare;
  • manual - låter dig memorera en underordnad post i databasen och inte inkludera den direkt i en instans av en grupprelation. Denna åtgärd initieras senare av användaren.

Uteslutningsläge.

Det är vanligt att skilja tre klasser av medlemskap i underordnade poster i grupprelationer:

  • Fast. En delpost är starkt kopplad till posten av dess ägare och kan endast uteslutas från grupprelationen genom att ta bort den. När du tar bort en ägarpost raderas också alla underordnade poster automatiskt. I exemplet ovan förutsätter fast medlemskap ett grupp SLUTSATS -förhållande mellan kontraktet och KUND -poster, eftersom ett kontrakt inte kan existera utan en kund.
  • Nödvändig. Det är tillåtet att byta en underordnad post till en annan ägare, men dess existens är omöjlig utan ägaren. För att ta bort en ägarpost får den inte ha några underordnade poster med obligatoriskt medlemskap. Detta förhållande är relaterat till posterna "ANSTÄLLARE" och "AVDELNING". Om en avdelning upplöses måste alla dess anställda antingen överföras till andra avdelningar eller avskedas.
  • Frivillig. Du kan utesluta en post från en grupprelation, men behåll den i databasen utan att bifoga den till en annan ägare. När du tar bort ägarens post, dess underordnade poster, sparas de valfria medlemmarna i databasen och deltar inte längre i en grupprelation av denna typ. Ett exempel på en sådan grupprelation skulle vara "FULFILL" mellan "ANSTÄLLDA" och "KONTRAKT", eftersom det kan finnas anställda i organisationen vars verksamhet inte är relaterad till fullgörandet av några avtalsförpliktelser gentemot kunder.

Operationer på data i databasnätverksmodellen

Lägg till - göra en post i databasen och, beroende på inkluderingsmetod, antingen inkludera den i grupprelationen, där den förklaras underordnad, eller inte inkludera den i någon grupprelation.
Inkludera i grupprelation - länka en befintlig underordnad post till ägarposten.
Växla - länka en befintlig underordnad post till en annan ägarpost i samma grupprelation.
Uppdatera - ändra värdet på elementen i den tidigare hämtade posten.
Extrahera - hämta poster sekventiellt efter nyckelvärde och även med grupprelationer - från ägaren kan du gå till poster - medlemmar och från den underordnade posten till ägaren till uppsättningen.
Radera - ta bort en post från databasen. Om denna post är ägare till grupprelationen, undersöks medlemsklassen för de underordnade posterna. Obligatoriska medlemmar måste tidigare uteslutas från grupprelationen, fasta som tas bort tillsammans med ägaren, valfria kommer att finnas kvar i databasen.
Uteslut från grupprelation - bryt länken mellan ägarrekordet och medlemsrekordet.

Integritetsbegränsningar

Som i hierarkisk modell bara länkarnas integritet upprätthålls (ägaren till relationen är medlem i relationen).

Fördelar och nackdelar med tidigt DBMS

Fördelar med tidiga DBMS:

  • avancerade metoder för datahantering i externt minne på en låg nivå;
  • möjligheten att manuellt bygga effektiva applikationssystem;
  • möjligheten att spara minne genom att separera subobjekt (i nätverkssystem)

Nackdelar med tidigt DBMS:

  • komplexitet i användningen;
  • höga krav på kunskap om databasens fysiska organisation;
  • beroende av tillämpade system av den fysiska organisationen av databasen;
  • överbelastning av logiken för tillämpade system med detaljer om hur du organiserar åtkomst till databasen.

Både hierarkiska och nätverksdatamodell förutsätter närvaro av högkvalificerade programmerare. Och även i sådana fall är implementeringen av användarförfrågningar ofta försenad under lång tid.

Objektorienterad DBMS

Framväxten av objektorienterade DBMS orsakades av behoven hos programmerare på OO-språk, som behövde medel för att lagra objekt som inte passade in i datorns RAM-minne. Också viktigt var uppgiften att behålla objekts tillstånd mellan upprepade lanseringar av applikationsprogrammet. Därför är de flesta OODBMS ett bibliotek vars datahanteringsprocedurer ingår i applikationsprogrammet. Exempel på OODBMS -implementering som dedikerad server databaser är extremt sällsynta.

Det bör genast noteras att den allmänt vedertagna definitionen av " objektorienterad datamodell"existerar inte. Nu kan vi bara tala om ett slags" objekt "tillvägagångssätt för logisk representation av data och om olika objektorienterade sätt att implementera det.

Vi vet att varje datamodell måste innehålla tre aspekter: strukturell, holistisk och manipulativ. Låt oss se hur de implementeras på en objektorienterad grund. programmeringsparadigm.

Strukturera

Objektmodellens struktur beskrivs med hjälp av tre nyckelbegrepp:

inkapsling - varje objekt har ett internt tillstånd (det lagrar en datapost inuti sig själv), liksom en uppsättning metoder - procedurer med hjälp av vilka (och endast på detta sätt) du kan komma åt data som bestämmer det interna tillståndet för objektet, eller ändra det. Således kan objekt ses som oberoende enheter, separerade från omvärlden;
arv - innebär förmågan att skapa nya klasser av objekt från klasser av objekt som ärver strukturen och metoderna för sina förfäder, och tillför dem funktioner som återspeglar deras egen personlighet. Arv kan vara enkelt (en förfader) och flera (flera förfäder);
polymorfism - olika objekt kan reagera olika på samma externa händelser beroende på hur deras metoder implementeras.

Dataintegritet

För att bibehålla konsistensen föreslår det objektorienterade tillvägagångssättet att använda följande verktyg:

  • automatiskt underhåll av arvsrelationer förmågan att deklarera vissa datafält och metoder för ett objekt som "dolda", inte synliga för andra objekt; sådana fält och metoder används endast av metoderna för själva objektet; skapande av procedurer för integritetskontroll inom objektet

Datamanipuleringsverktyg

Tyvärr saknar objektorienterad programmering generiska datamanipuleringsverktyg som relationsalgebra eller relationsberäkning. Datamanipulation utförs med ett av de allmänna objektorienterade programmeringsspråken, vanligtvis SmallTalk, C ++ eller Java.

Låt oss nu sammanfatta några av resultaten.

Objektorienterade databaser, till skillnad från relationsdatabaser, lagrar objekt snarare än poster. OO -metoden ger bättre sätt att visa den verkliga världen än relationsmodellen, den naturliga representationen av data. I relationsmodellen hör alla relationer till samma nivå, det är det som komplicerar omvandlingen av hierarkiska relationer mellan entitetsrelationsmodellen till en relationsmodell. OO - modellen kan betraktas som lager för lager, på olika abstraktionsnivåer. Det är möjligt att definiera nya datatyper och operationer med dem.

Samtidigt, OO - modellen har också ett antal nackdelar:

  • det finns inga kraftfulla icke-procedurella medel för att extrahera objekt från databasen. Alla frågor måste skrivas på procedurspråk, problemet med deras optimering är programmerarens ansvar;
  • istället för rent deklarativ Integritetsbegränsningar(som att uttryckligen deklarera primära och främmande nycklar till relationstabeller med hjälp av nyckelord PRIMÄRNYCKEL och REFERENSER) eller halvdeklarativa utlösare måste du skriva procedurkod för att säkerställa intern integritet.

Uppenbarligen är båda dessa brister förknippade med bristen på avancerade datahanteringsverktyg. Detta problem löses på två sätt-att utvidga OO-språk mot datahantering (ODMG-standard) eller lägga till objektegenskaper i relationella DBMS (SQL-3, såväl som så kallade objektrelationella DBMS).

Varje operation inkluderar val av data (urval) och de åtgärder som kommer att utföras på den valda datan. Huvudoperationerna i en relationsdatabas är databasuppdateringsoperationer och relationsbehandlingsoperationer.

TILL databasuppdateringsoperationer inkludera de operationer som sätter in nya tupler, tar bort onödiga, justerar värdena för attribut för befintliga tupler, nämligen: det här är operationer Sätta på, Radera, Uppdatera.

Drift Sätta på kräver att man anger namnet på förhållandet och en preliminär bildning av värdena för attributen för den nya tupeln. Tupelnyckeln måste anges.

Drift Radera kräver namnet på relationen, liksom identifiering av tupeln eller gruppen av tupler som ska tas bort.

Drift Uppdatera körs för den namngivna relationen och kan uppdatera en eller flera tupler. Till exempel, om företagets ledning bestämde sig för att höja alla anställdas löner med samma belopp, kommer flera tuplar att korrigeras samtidigt med en uppdateringsoperation.

Rörande bearbetning, då lånas de från relationsalgebra. Enligt E. Codds tillvägagångssätt inkluderar relationsalgebra åtta operationer, varav fem är grundläggande: Prov, Projektion, multiplikation, union, subtraktion.

Prov- välj endast från de relationer som uppfyller det givna villkoret.

Utsprång relation för en given uppsättning av dess attribut, erhålls en ny relation, skapad genom att extrahera tupler som innehåller de angivna attributen från den ursprungliga relationen.

Multiplikation(Kartesisk produkt) av två relationer, en ny relation erhålls, vars tupler är sammankopplingen av tuplerna i den första och andra relationen.

Som ett resultat Föreningar två relationer, erhålls det tredje, vilket inkluderar tupler som ingår i minst en relation, det vill säga innehåller alla element i de ursprungliga relationerna.

Subtraktion endast de tuplerna i den första relationen returneras som är kvar från subtraktionen av den andra relationen, det vill säga att alla tupler av den andra slängs ut från den första relationen.

De tre andra transaktionerna är derivat, de kan erhållas från huvudoperationerna, de kallas extra: Anslutning, korsning, Division.

Drift Förening gäller två relationer som har ett gemensamt attribut. Resultatet av denna operation för två relationer av något villkor är en relation av tupler, som är en kombination av det första och andra förhållandet som uppfyller det angivna villkoret.

Korsning två relationer är en relation som inkluderar alla tupler som ingår i båda relationerna.

Drift Division antar att det finns två relationer: en är binär (innehåller två attribut), den andra är unary (innehåller ett attribut). Resultatet är en relation som består av tupler som inkluderar värdena för det första attributet för tuplerna i den första relationen, men endast de för vilka uppsättningen värden för det andra attributet i den första relationen sammanfaller med uppsättningen av värden för attributen för den andra relationen.

Ett särdrag hos relationsbehandlingsoperationer är att behandlingsenheten i dem inte är tupler utan relationer: vid ingången av varje operation används en eller två relationer, och resultatet av operationerna är en ny relation.

Låt oss titta närmare på några av de vanligaste relationsrelaterade algebraoperationerna.

Drift Union- två kompatibla relationer av samma dimension sätts vid ingången: A och B. Resultatet är en relation av samma struktur som innehåller alla tuplerna av A och alla tuplerna av B

Korsning antar närvaron av två relationer av samma dimension vid ingången: A och B. Vid utgången skapas en relation med samma struktur, som endast innehåller de tuplerna A som finns i B.

Division. Vid ingången till operationen används två relationer: A och B. Låt relationen A, kallad delbar, innehålla attributen (A 1, A 2, A 3, ..., A n). Förhållande B är en delare och innehåller en delmängd av attribut A: (A 1, A 2, ..., A k), där k

I allmänhet ger funktionen i relationsdatamodellen möjligheten att manipulera relationer, så att du kan uppdatera databasen, samt välja delmängder av lagrad data och representera dem i önskad form.

När man konstruerar och arbetar med databaser är dessa åtta operationer vanligtvis inte tillräckligt. Därför läggs sådana operationer till som: byta namn på attribut, bilda nya beräknade attribut, tilldelning, jämförelse etc.

Modifieringsanomalier

Modifieringsanomalier manifesteras i det faktum att en förändring i värdet för en given kan innebära en titt på hela tabellen och en motsvarande förändring i några andra poster i tabellen.

Avlägsnande avvikelserär att när du raderar data från tabellen kan annan information också försvinna som inte är direkt relaterad till raderade data.

Additionsavvikelser uppstår i fall där information inte kan placeras i en tabell förrän den är ofullständig, eller för att infoga en ny post kräver en ytterligare sökning av tabellen

Låt det finnas en relation som lagrar information om studenter, de kurser de går och kostnaden för dessa kurser. En tupel tas bort från denna relation, som innehåller (förutom information om studenten) information om namnet och kostnaden för kursen som den här studenten deltar i. Om informationen om kursens namn och kostnad lagrades i en enda kopia endast i denna tupel, kommer den oåterkalleligt att försvinna från relationen. Denna situation kallas avlägsnande anomali... Genomförande av raderingsoperationen leder till förlust av information om två enheter.

Samma relation kan användas för att illustrera insättningsanomali... Låt oss säga att vi måste lägga till information om titeln och kostnaden för en viss kurs, men vi kan inte lägga till denna information förrän inga studenter är inskrivna i kursen. Du kan bli av med båda avvikelserna genom att dela det befintliga förhållandet i två, som var och en innehåller data från endast en enhet. Att radera studentinformationen påverkar inte kursdata.

Att dela upp en relation i två ger också problem. Är det till exempel möjligt att registrera en student i en kurs som ännu inte finns? Dessa problem bör åtgärdas genom diskussion av affärsregler. Om affärsreglerna föreskriver kravet på att ha information om kursen och kostnaden när en student anmäler sig till den här kursen, kommer en kontroll att göras för att säkerställa att den obligatoriska kursen finns. Denna typ av kontroller kallas begränsande referensintegritet eller utländska nyckelintegritetsbegränsningar.

Enhetsintegritet - inget primärt nyckelvärde måste innehålla null.

Designstadier:

Konceptuellt design - databasutvecklingsprocessen börjar med en kravanalys. I detta utvecklingsskede måste designern hitta svar på följande frågor: vilka dataelement som ska lagras, vem och hur kommer åt dem. Modellen är skapad. Information beror inte på fysiska aspekter, målindelning och programmeringsspråk

Logiskt - databasens logiska struktur skapas. För att göra detta, bestäm hur data kommer att grupperas logiskt. Databasens struktur i detta skede uttrycks i termer av tillämpade objekt och relationer mellan dem. Beror på mål -DBMS, redundanskontroller, normalisering.

Fysiskt - den logiska strukturen i databasen omvandlas till en fysisk, med hänsyn till aspekter av prestanda. Dataelement i detta skede mottar attribut och definieras som kolumner i tabellerna i databasen som valts för implementeringen av DBMS. Grundläggande fil- och indexorganisationsrelationer, integritetsbegränsningar och skydd.

För alla - transaktioner- odelbar efterfödelse av operationer, överföring av databasen från ett stabilt tillstånd till ett annat. Egenskaper - atomicitet (odelbarhet), konsistens (från en överensstämmelse till en annan), isolering (användartransaktioner stör inte varandra), hållbarhet (resultatet måste registreras i databasen efter lanseringen, även om det kraschade i nästa ögonblick ).

Entitetsrelationsmetod.

Modelleringsmetod för entitetsrelation ger en abstrakt modell av domänen med hjälp av följande grundläggande begrepp: enheter(enheter), inbördes relationer(relationer) mellan enheter och attribut(attribut) för att representera egenskaper hos enheter och relationer.

Varje fragment av ämnesområdet kan representeras som många enheter, mellan vilka det finns några många anslutningar... Låt oss ge definitioner:

Kärnanär ett objekt som kan identifieras på något sätt som skiljer det från andra objekt. Exempel: en specifik person, företag, händelse etc.

Enhetsuppsättning- många enheter av samma typ (med samma egenskaper). Exempel: alla människor, företag, semester, etc. Enhetsuppsättningar behöver inte vara åtskilda. Till exempel tillhör en enhet som tillhör uppsättningen MAN också den MÄNNISKA uppsättningen.

En enhet är faktiskt en uppsättning attribut som beskriver egenskaperna hos alla medlemmar i en given uppsättning enheter. Domän var redan högre.

Enhetsnyckelär ett eller flera attribut som unikt definierar en given entitet.

Förbindelseär en sammanslutning etablerad mellan flera enheter. Exempel:

  • eftersom varje medarbetare arbetar på en avdelning, finns det ett "works in" eller DEPARTMENT-WORKER-förhållande mellan medarbetaren och avdelningen.

Tyvärr finns det inga allmänna regler för att avgöra vad som anses vara en enhet och vad som är en relation. I exemplet ovan antog vi att "leads" är en länk. Du kan dock betrakta enheten som "chef", som har en relation "övervakar" med enhets "avdelning" och "är" med enheten "anställd".

En länk kan också ha attribut. Till exempel för förhållandet DEPARTMENT-EMPLOYEE kan du ställa in attributet DEPARTMENT_HEEP_HEEP.

En entitets roll i en relation- den funktion som enheten utför i detta sammanhang. I en relation mellan föräldrar och avkommor kan till exempel en MÄNNISK entitet ha både överordnade och underordnade roller. Att ange roller i entitetsrelationsmodellen är valfritt och tjänar till att klargöra relationens semantik.

Uppsättning länkarär förhållandet mellan n(dessutom n minst 2) enheter, som var och en tillhör en viss uppsättning enheter.

Även om begreppen "länk" och "uppsättning länkar" strikt sett är olika (det första är ett element i det andra), är de ändå mycket ofta förvirrade.

När n = 2, d.v.s. när en relation kombinerar två enheter kallas det binärt. Det är bevisat att n-många länkar ( n> 2) kan alltid ersättas med många binära, men de förstnämnda återspeglar bättre domänens semantik.

Antalet enheter som kan associeras genom en uppsättning relationer med en annan enhet kallas grad av anslutning... Examenshänsyn är särskilt användbara för binära relationer. Följande grader av binära relationer kan existera:

  • en till en (betecknad med 1: 1 ). Detta innebär att i en sådan relation motsvarar en enhet med en roll alltid högst en enhet med en annan roll.

En annan viktig egenskap hos kommunikation förutom dess examen är klass av tillhörighet enheter som ingår i den eller kardinalitet kommunikation.

"ANSTÄLLARE" har obligatorisk tillhörighetsklass(detta faktum indikeras också genom att ange intervallet mellan antalet möjliga förekomster av enheten i relationen, i detta fall är det 1.1), och avdelningen har valfri tillhörighetsklass(0,1). Nu kan vi beskriva denna koppling som 0,1:1,1 .

  • en till många ( 1: n). I det här fallet kan enheter med en roll motsvara valfritt antal enheter med en annan roll.

Denna figur illustrerar vidare det faktum att flera uppsättningar av relationer kan definieras mellan två enheter.

  • många mot en ( n: 1). Detta förhållande liknar displayen 1: n.

I detta fall, av uppenbara skäl (varje kontrakt ingås med en specifik kund, och varje kund har minst ett kontrakt, annars skulle det inte vara sådant), har varje enhet en obligatorisk klass av tillhörighet.

  • många till många ( n: n). I det här fallet kan var och en av de associerade enheterna representeras av valfritt antal instanser.

Om förekomsten av enheten x beror på förekomsten av enheten y, kallas x beroende enhet(ibland kallas enhet x "svag" och "enhet" y kallas stark). Som ett exempel, överväga förhållandet mellan de tidigare beskrivna enheterna WORKINGGROUP och CONTRACT. Arbetsgruppen skapas först efter att kontraktet med kunden har undertecknats och upphör att existera när kontraktet fullgörs. Därefter är WORKGROUP beroende av KONTRAKT -entiteten. Den beroende enheten markeras med en dubbel rektangel och dess anslutning till en stark enhet med en rad med en pil ( vi hade en oval för missbrukaren)

Kardinaliteten i anslutningen för en stark enhet kommer alltid att vara (1,1). Klass av medlemskap och graden av relation för en beroende enhet kan vara vad som helst.

12. Hierarkiska och nätverksdatamodeller.

Hierarkisk modellär en uppsättning element ordnade i ordning efter deras underordning från generellt till specifikt och bildar ett träd (diagram) inverterat i struktur.

De grundläggande begreppen för en hierarkisk struktur är nivå, nod och länk. Knutär en samling dataattribut som beskriver något objekt. I diagrammet över ett hierarkiskt träd representeras noder av hörn i en graf. Varje nod på en lägre nivå är associerad med endast en nod på en högre nivå. Ett hierarkiskt träd har bara en toppunkt, inte underordnad någon annan toppunkt och ligger högst upp - första nivån. Beroende (underordnade) noder är på andra, tredje, etc. nivåer. Antalet träd i databasen bestäms av antalet rotposter. Det finns bara en hierarkisk sökväg från rotposten till varje databaspost.

Organisationen av data i ett hierarkiskt DBMS definieras i termer av: element, aggregat, post (grupp), grupprelation, databas.

  • Attribut (artikel)är den minsta enheten i datastrukturen. Normalt tilldelas varje element ett unikt namn när en databas beskrivs. Med detta namn hänvisas det till under bearbetning. En datapost kallas också ofta som ett fält.
  • Inspelning- en namngiven uppsättning attribut. Användningen av poster gör att du kan få en logiskt relaterad uppsättning data i ett samtal till databasen. Det är posterna som ändras, läggs till och raderas. Posttypen bestäms av sammansättningen av dess attribut. Record Instance - en specifik post med ett specifikt elementvärde
  • Grupprelation- ett hierarkiskt förhållande mellan poster av två typer. Förälderposten (ägaren till grupprelationen) kallas den ursprungliga posten och barnposterna (medlemmarna i grupprelationen) kallas underordnade. En hierarkisk databas kan bara lagra sådana trädstrukturer.

Rotposten för varje träd måste innehålla en nyckel med ett unikt värde. Non-root-postnycklar måste bara ha unika värden inom en grupprelation. Varje post identifieras med en fullständigt sammanfogad nyckel, som är en uppsättning nycklar för alla poster från roten längs den hierarkiska sökvägen.

I en grafisk framställning avbildas grupprelationer med bågar i ett riktat diagram och posttyper representeras av hörn.

För grupprelationer ger den hierarkiska modellen automatisk inkludering och fast medlemskap. Detta betyder att för att komma ihåg alla icke-root-poster måste dess överordnade post finnas i databasen.När en överordnad post tas bort raderas alla underordnade automatiskt.

Exempel: företaget består av avdelningar där anställda arbetar. Varje avdelning kan ha flera anställda, men en anställd kan inte arbeta på mer än en avdelning.

Därför måste du för personskapa en grupprelation som består av den överordnade posten DEPARTMENT (DEPARTMENT_NAME, NUMBER_ OF EMPLOYEES) och barnposten MEDARBETARE (SURNAME, POSITION, LÖN). (För enkelhetens skull antas det att det bara finns två barnposter.) - ris a (vidare)

För att automatisera redovisningen av kontrakt med kunder är det nödvändigt att skapa en annan hierarkisk struktur: kund - kontrakt med honom - anställda som är involverade i arbetet med kontraktet. Detta träd kommer att innehålla posterna KUND (CUSTOMER_NAME, ADDRESS), KONTRAKT (NUMMER, DATUM, MÄNGD), KONTRAKTÖR (SURNAME, POSITION, DEPARTMENT_NAME) - fig. b.

nackdelar hierarkiska databaser:

  • Information mellan poster dubbleras delvis (sådana poster kallas parade), och den hierarkiska datamodellen ger inte stöd för korrespondens mellan parade poster.
  • Den hierarkiska modellen implementerar förhållandet mellan käll- och underordnade poster enligt 1: N -schemat, det vill säga att ett antal barn kan motsvara en överordnad post. Låt oss nu anta att en artist kan delta i mer än ett kontrakt (det vill säga att ett M: N -förhållande uppstår). I det här fallet är det nödvändigt att ange en annan grupprelation i databasen, där KONTRAKTÖREN kommer att vara den ursprungliga posten, och KONTRAKTEN kommer att vara barnet. Således måste vi igen kopiera informationen. (Fig. C)
  • ganska komplexa logiska kopplingar och motsvarande besvärlighet i databehandlingen

Fördelar:

Det enklaste är ganska effektiv användning av minne och bra timingprestanda för dataoperationer. Denna modell är dock lämplig främst för att arbeta med hierarkiskt organiserad information.

Datafunktioner definierade i den hierarkiska modellen:

  • LÄGG TILL en ny post i databasen. Bildning av nyckelvärdet är obligatoriskt för rotposten.
  • FÖRÄNDRA datavärdet för den tidigare hämtade posten. Nyckeldata bör inte ändras.
  • RADERA vissa poster och alla poster underordnade den.
  • EXTRAHERA:
    • hämta rotposten efter nyckelvärde, sekventiell genomsökning av rotposter är också tillåten
    • hämta nästa post (nästa post hämtas i vänster traversal ordning)

I EXTRAKT -operationen kan du ange valvillkoren.

Alla modifieringsoperationer tillämpas på endast en "aktuell" post (som tidigare hämtades från databasen). Detta tillvägagångssätt för datamanipulering kallas "navigering".

Integritetsbegränsningar.

Endast integriteten i förhållandet mellan ägare och medlemmar i en grupprelation upprätthålls (ingen ättling kan existera utan en förfader). Det automatiska underhållet av korrespondensen mellan parade poster som ingår i olika hierarkier tillhandahålls inte.

De första databashanteringssystemen, som dök upp i mitten av 60-talet, gjorde det möjligt att arbeta med en hierarkisk databas. Det mest kända var det hierarkiska systemet IMS från IBM. Andra system är också kända: PC / Focus, Team-Up, Data Edge och vårt: Oka, INES, MIRIS.

Nätverksdatamodell.

Nätverksmodell- en struktur där alla element kan associeras med något annat element. En nätverksdatabas består av uppsättningar poster som är relaterade till varandra på ett sådant sätt att poster kan innehålla uttryckliga länkar till andra uppsättningar poster. På så sätt bildar postuppsättningar ett nätverk. Länkarna mellan poster kan vara godtyckliga och dessa länkar finns uttryckligen och lagras i databasen.

Nätverksdatamodellen definieras i samma termer som den hierarkiska. Den består av många poster som kan vara ägare eller medlemmar i en grupprelation. Förhållandet mellan ägarregistret och medlemsregistret är också 1: N.

Den största skillnaden mellan dessa modeller är att i nätverksmodellen kan en post vara medlem mer än ett grupprelation. Enligt denna modell heter varje grupprelation och man gör skillnad mellan dess typ och instans. Typen av grupprelation anges av dess namn och definierar de egenskaper som är gemensamma för alla instanser av denna typ. En instans av en grupprelation representeras av en ägarpost och en uppsättning (möjligen tom) av underordnade poster. Samtidigt finns det följande begränsning: en postinstans kan inte vara medlem i två instanser av grupprelationer av samma typ (en anställd kan inte arbeta på två avdelningar)

Den hierarkiska strukturen från bilden ovan. konverterar till nätverket enligt följande

Träd (a) och (b) ersätts av en enda nätverksstruktur i vilken ARBETSGIVARE -posten tillhör två grupprelationer; för att visa typ M: N, ange posten EMPLOYEE_CONTRACT, som inte har några fält och endast används för att länka kontakten och EMPLOYEE -poster

Varje instans av en grupprelation kännetecknas av följande funktioner:

  • sätt att beställa underordnade poster:

slumpmässig,

kronologisk / kö /,

omvänd kronologisk / stack /,

blandad.

Om en post förklaras underordnad i flera grupprelationer, kan var och en av dem tilldelas en annan beställningsmetod.

  • underordnad post inkluderingsläge:

automatisk - det är omöjligt att skriva in en post i databasen utan att den omedelbart tilldelas en viss ägare;

manual - låter dig memorera en underordnad post i databasen och inte inkludera den direkt i en instans av en grupprelation. Denna åtgärd initieras senare av användaren).

  • uteslutningsläge Det är vanligt att skilja tre klasser av medlemskap i underordnade poster i grupprelationer:

Fast. En delpost är starkt kopplad till posten av dess ägare och kan endast uteslutas från grupprelationen genom att ta bort den. När du tar bort en ägarpost raderas också alla underordnade poster automatiskt. I exemplet förutsätter fast medlemskap ett grupp SLUTSATS -förhållande mellan kontraktet och KUND -poster, eftersom ett kontrakt inte kan existera utan en kund.

Nödvändig. Det är tillåtet att byta en underordnad post till en annan ägare, men dess existens är omöjlig utan ägaren. För att ta bort en ägarpost får den inte ha några underordnade poster med obligatoriskt medlemskap. Detta förhållande är relaterat till posterna "ANSTÄLLARE" och "AVDELNING". Om en avdelning upplöses måste alla dess anställda antingen överföras till andra avdelningar eller avskedas.

Frivillig. Du kan utesluta en post från en grupprelation, men behåll den i databasen utan att bifoga den till en annan ägare. När du tar bort en ägarpost sparas dess underordnade poster - valfria medlemmar i databasen och deltar inte längre i en grupprelation av denna typ. Ett exempel på en sådan grupprelation är "FULFILL" mellan "ANSTÄLLDA" och "KONTRAKT", eftersom det kan finnas anställda i organisationen vars verksamhet inte är relaterad till fullgörandet av några avtalsenliga skyldigheter gentemot kunder.

Datafunktioner.

LÄGG TILL- göra en post i databasen och, beroende på inkluderingsmetod, antingen inkludera den i grupprelationen, där den förklaras underordnad, eller inte inkludera den i någon grupprelation.

INKLUDERAR I KONCERNRELATION- länka en befintlig underordnad post till ägarposten.

VÄXLA- länka en befintlig underordnad post till en annan ägarpost i samma grupprelation.

UPPDATERING- ändra värdet på elementen i den tidigare hämtade posten.

EXTRAHERA- hämta poster sekventiellt efter nyckelvärde och även med grupprelationer - från ägaren kan du gå till poster - medlemmar och från den underordnade posten till ägaren till uppsättningen.

RADERA- ta bort en post från databasen. Om denna post är ägare till grupprelationen, undersöks medlemsklassen för de underordnade posterna. Obligatoriska medlemmar måste tidigare uteslutas från grupprelationen, fasta som tas bort tillsammans med ägaren, valfria kommer att finnas kvar i databasen.
EXKLUDERA FRÅN KONCERNRELATION- bryt länken mellan ägarrekordet och medlemsrekordet.

Integritetsbegränsningar.

Som i den hierarkiska modellen upprätthålls endast integritet genom referens (relationens ägare är medlem i relationen).

Den huvudsakliga värdighet nätverksmodell är hög minneskostnadseffektivitet och lyhördhet. Fel- komplexiteten och stelheten i grundschemat, liksom komplexiteten i förståelsen. Dessutom försvagas integritetskontrollen i denna modell eftersom den gör det möjligt att ange godtyckliga länkar mellan poster. Komplexiteten i DBMS -implementeringen, komplexiteten i datatillgångsmekanismen och behovet av att tydligt definiera dataanslutningar på fysisk nivå

Till välkända nätverksbaserade databashanteringssystem inkluderar: DBMS, IDMS, TOTAL, VISTA, NETWORK, CETOR, COMPASS, etc.

När man jämför hierarkiska databaser och nätverksdatabaser kan man säga följande. I allmänhet ger hierarkiska och nätverksmodeller rimligt snabb åtkomst till data. Men eftersom i nätverksdatabaser har huvudstrukturen för informationsrepresentation formen av ett nätverk, där varje hörn (nod) kan ha en anslutning med någon annan, är data i nätverksdatabasen mer lika än i den hierarkiska, eftersom information kan nås från vilken nod som helst.

Grafmodeller (hierarkiska och nätverksmodeller) implementeras som datamodeller i databashanteringssystem som fungerar på stordatorer. För persondatorer är relationsdatabaser vanligare, även om det finns databashanteringssystem som stöder nätverksmodellen.







2021 gtavrl.ru.