Databasteknik Introduktion Relationsmodellen Nyckelbegrepp för

January 8, 2018 | Author: Anonymous | Category: Engineering & Technology, Datavetenskap, Databases
Share Embed Donate


Short Description

Download Databasteknik Introduktion Relationsmodellen Nyckelbegrepp för...

Description

Introduktion

Databasteknik

Informationssökande system • Söker i stora datamängder som ej formaterats enligt något mönster (exempelvis Google) • Vanligtvis är dessa av typen read-only

Databashanteringssystem (DBMS)

Introduktion ER Schema Databasobjekt SQL

• Består av ett litet ”schema” som beskriver strukturen • Kan innehålla stora mängder av homogen data • Möjlighet att lätt fylla på med mer data • Flera samtidiga användare med både läs- och skrivrättigheter

Relationsmodellen

Nyckelbegrepp för DBMS:

• Relationsmodellen är väldigt spridd • Tillhandahåller ett flexibelt gränssnitt oberoende av användarens nivå • Baserat på det standardiserade frågespråket SQL • Portabilitet/Plattformsoberoende • Relationsmodellen tillhandahåller ett starkt dataoberoende

Effektivitet: • Effektiv dataåtkomst måste tillhandahållas oberoende av datamängd

Användarvänlighet: • Systemet ska vara både lättanvänt och tillhandahålla avancerade möjligheter

System som baserar sig på relationsmodellen: • SQL Server (versionen SQL Server Express är gratis för utvecklare) • Oracle • mySQL • Access (mest för enanvändarsystem och vid utveckling)

• Stöd för flera samtidiga användare • Begränsad dataåtkomst via vyer (views) • Begränsad dataåtkomst baserad på begränsningar i användarens rättigheter

mfl

Robusthet:

Fleranvändarsystem:

• Låsningar måste undvikas • Möjlighet att återskapa data med ett minimum av dataförluster

Entity-Relationship Schema • Rektanglar represneterar Entiteter (”tabell”) Student • Attribut (”kolumn”) representeras av ovaler • Nyckelattribut har understrykningar Ett nyckelattribut är unikt för varje rad i entiteten ID Number

Relationer Student

Name

City Major

Null-värden:

Relationer kan vara 1:1, 1:många eller många:många

Notera att det förekommer lite flexibilitet...

Ett attribut kan misslyckas at ta emot ett värde beroende på två anledningar: • Missing value-null. • Not applicable-null. Exempel: •Missing-value null indikerar att en students telefonnummer är okänt •Not-applicable null indikerar att studenten inte har någon telefon

Street

Address Lives at

Student

Street

City

- Null är inte samma sak som noll!!

1

Centrala delar i ett DBMS • Tabeller • Vyer • Datatyper • Defaults • Lagrade procedurer • Triggers • Indexering .

Tabeller (Entiteter) Primärnyckel

Person PersonID

Fname

Ename

Income

Address

7108118529

Åsa

Åström

13000

1

7303038564

Markus

Andersson

12300

2

7110220230

Jon

Nilsson

12900

1

Address AddressID

Street

Streetno Pcode

1

Räkstigen

15

93015

City Skellefteå

2

Fiolgränd

3

93030

Ursviken

Primärnyckel

Tabeller forts…

Sekundärnyckel

Structured Query Language

För att kunna ansluta till primärnyckeln i en tabell måste det finnas en Sekundärnyckel i en annan tabell

CREATE TABLE person PersonID INT PRIMARY KEY, Fname CHAR(20), Ename CHAR(20), Income SMALLMONEY, Adress INT

En nyckel kan vara en enkel kolumn (attribut) eller en kombination av två eller flera

INSERT [INTO] person(PersonID, Fname, Ename, Income, Address) VALUES (’7108118529’,’Åsa’,’Åström’,13000, 1)

En tabell ska följa Första normalformen, vilket innebär att det inte ska gå att bryta ner innehållet i ett attribut ytterligare

UPDATE Person SET Ename = ’Nilsson’ WHERE Ename = ’Åström’

Två rader i samma tabell (entitet) kan inte identiskt innehåll, innehållet separeras med hjälp av en Primärnyckel

DELETE [FROM] Person WHERE Fname = ’Åsa’

Integritet 1. 2. 3.

Entitetsintegritet - Två rader i en tabell kan inte ha exakt lika innehåll Domänintegritet - Kontroll av innehåll i ett attribut, exempelvis ”Null-kontroll” Referensintegritet - Säkerställer på olika sätt att det alltid finns en relation mellan en primärnyckel och en sekundärnyckel

Frågor i SQL SELECT Fname, Ename, Income FROM Person WHERE PersonID = ’7108118529’ SELECT Street, Streetno FROM Address WHERE Pcode like ’930*’ SELECT * FROM Person, Address WHERE AddressID.Address = Address.Person

CREATE TABLE … CREATE INTEGRITY (INTEGRITY ersätts med CONSTRAINT för MS SQL-Server!) ON Person IS PersonID > 0001010000 AND PersonID < (Date) * 10000 AND PersonID ’Null’;

PersonID

Fname

Ename

Income

Street

7108118529

Åsa

Nilsson

13000

Räkstigen 15

Streetno Pcode 93015

City Skellefteå

7303038564

Markus

Andersson

12300

Fiolgränd 3

93030

Ursviken

7110220230

Jon

Nilsson

12900

Räkstigen 15

93015

Skellefteå

2

Vyer (Views)

Lagrade procedurer och Triggers

• En vy är en funktionell avbildning av en (eller flera) tabeller i en (eller flera) databaser

En lagrad procedur är...

• Strukturellt är en vy identisk med en fråga

… en grupp av förkompilerade SQL-kommandon som lagrats i databashanteraren … ofta ligger den i någon form av cache (SQL Server lagrar dessa i Procedure Cache)

• Funktionellt är den alltid aktuell, den känner av ändringar utförda i underliggande tabell (tabeller)it persist in time

- Lagrade procedurer leder till prestandalökning!

• Man kan ställa frågor mot en vy

En Trigger är…

• En vy kan med fördel användas för att begränsa åtkomst

… en speciell sorts lagrad procedur som aktiveras av fördefinierade händelser

CREATE VIEW Contact SELECT Fname, Ename, Street, Streetno, Pcode, City FROM Person, Address WHERE AddressID.Address = Address.Person SELECT * FROM Contact

3

View more...

Comments

Copyright � 2017 NANOPDF Inc.
SUPPORT NANOPDF