SIZE rozmiar [ K | M ]

Transkrypt

SIZE rozmiar [ K | M ]
PODSTAWY
BAZ DANYCH
Wykład 8
6. Podstawowe obiekty bazy
danych Oracle
2005/2006
Wykład "Podstawy baz danych"
1
Przestrzenie tabel i pliki danych
CREATE TABLESPACE nazwa_przestrzeni
DATAFILE ‘plik’ SIZE rozmiar [ K | M ]
[ONLINE | OFFLINE ]
[ PERMANENT | TEMPORARY ]
DEFAULT STORAGE
(
[ INITIAL rozmiar [ K | M ] ]
[ NEXT rozmiar [ K | M ] ]
[ MINEXTENTS liczba ]
[ MAXEXTENTS liczba | UNLIMITED ]
[ PCTINCREASE liczba ]
);
Przy pomocy DEFAULT STORAGE określamy parametry każdego segmentu
tworzonego w definiowanej przestrzeni tabel.
2005/2006
Wykład "Podstawy baz danych"
2
Tworzenie tabel
CREATE TABLE nazwa_tabeli
( atrybut typ [ DEFAULT wyrażenie] [,........] ]
[ PCTFREE liczba ]
[ PCTUSED liczba ]
[ INITRANS liczba ]
[ MAXTRANS liczba ]
[ TABLESPACE nazwa_przestrzeni ]
[ STORAGE
(
[ INITIAL liczba [ K | M ]]
[ NEXT liczba [ K | M ] ]
[ PCTINCREASE liczba ]
[ MINEXTENS liczba ]
[ MAXEXTENS liczba ]
) ];
2005/2006
Wykład "Podstawy baz danych"
/*przestrzeń użytkownika*/
/*domyślna UNLIMITED*/
3
Tworzenie tabel
CREATE TABLE nazwa_tabeli
( atrybut typ [ DEFAULT wyrażenie] [,........] ]
[ PCTFREE liczba ]
[ PCTUSED liczba ]
[ INITRANS liczba ]
[ MAXTRANS liczba ]
[ TABLESPACE nazwa_przestrzeni ]
[ STORAGE storage ]
[ CLUSTER nazwa_klastra (column [, column] ...) ]
[ AS query ];
Usuwanie tabeli
DROP TABLE nazwa_tabeli [ CASCADE CONSTRAINTS ];
2005/2006
Wykład "Podstawy baz danych"
4
Tabele-indeksy
Można utworzyć tabelę zorganizowaną w postaci indeksu.
CREATE TABLE nazwa_tabeli
................
ORGANIZATION INDEX;
2005/2006
Wykład "Podstawy baz danych"
5
Ograniczenia integralnościowe
ƒ
ƒ
ƒ
ƒ
ƒ
PRIMARY KEY
UNIQUE
NOT NULL
CHECK
FOREIGN KEY
Przykład.
CREATE TABLE osoby
( id NUMBER CONSTRAINT osoba_id_PK PRIMARY KEY,
nazwisko VARCHAR2(15) NOT NULL,
…
plec CHAR(1) CHECK(plec=‘K’ OR plec=‘M’)
);
2005/2006
Wykład "Podstawy baz danych"
6
Modyfikowanie tabel
Modyfikowanie parametrów tabel:
ALTER TABLE nazwa_tabeli
[ PCTFREE liczba ]
[ PCTUSED liczba ]
[ INITRANS liczba ]
[ MAXTRANS liczba ]
[ STORAGE
( [ NEXT liczba [ K | M ]]
[ PCTINCREASE liczba ]
[ MINEXTENS liczba ] ];
[ MAXEXTENS liczba ]
) ];
2005/2006
Wykład "Podstawy baz danych"
7
Tworzenie indeksu
CREATE [ BITMAP ] INDEX nazwa_indeksu
ON { nazwa_tabeli ( atrybut [,atrybut [...] ] ) | CLUSTER nazwa_klastra }
[ PCTFREE liczba ]
[ INITRANS liczba ]
[ MAXTRANS liczba ]
[ TABLESPACE nazwa_przestrzeni ]
[ STORAGE
(
[ INITIAL liczba [ K | M ]]
[ NEXT liczba [ K | M ] ]
[ PCTINCREASE liczba ]
[ MINEXTENS liczba ]
[ MAXEXTENS liczba ] ) ]
[ REVERSE ];
2005/2006
Wykład "Podstawy baz danych"
8
Modyfikowanie indeksu
ALTER INDEX nazwa_indeksu
[ PCTFREE liczba ]
[ INITRANS liczba ]
[ MAXTRANS liczba ]
[ STORAGE
(
[ NEXT liczba [ K | M ] ]
[ PCTINCREASE liczba ]
[ MINEXTENS liczba ]
[ MAXEXTENS liczba ] ) ]
[ REBUILD ]
);
DROP INDEX nazwa_indeksu;
2005/2006
Wykład "Podstawy baz danych"
9
Widoki (Perspektywy)
Widok (perspektywa) jest to logiczna tabela bazująca na
jednej lub wielu tabelach.
Utworzyć widok może właściciel tabel, użytkownik
posiadający do nich co najmniej uprawnienia SELECT
lub administrator.
CREATE VIEW [user.]view [(alias [, alias] ...)]
AS query
[ WITH CHECK OPTION ] ;
2005/2006
Wykład "Podstawy baz danych"
10
Widoki (Perspektywy)
Parametry:
query - identyfikuje kolumny i wiersze tabel, na których
bazuje widok. Zapytanie może być dowolnym poprawnym
rozkazem SELECT nie zawierającym klauzul ORDER BY
ani FOR UPDATE.
informuje, że wstawienia i zmiany
wykonywane poprzez widok, są niedozwolone jeśli
spowodują wygenerowanie wierszy, które będą niedostępne
dla widoku.
WITH CHECK OPTION -
Klauzula WITH CHECK OPTION może być użyta w widoku
bazującym na innym widoku.
2005/2006
Wykład "Podstawy baz danych"
11
Widoki (Perspektywy)
CREATE VIEW v_osoby
AS
SELECT * FROM osoby WHERE plec=‘M’
WITH CHECK OPTION ;
INSERT INTO v_osoby VALUES
( 50, ‘Murek', ‘Jan',NULL,TO_DATE('03/05/1980','dd/mm/yyyy'), 'M');
INSERT INTO v_osoby VALUES
( 60, ‘Murek', ‘Janina',NULL, TO_DATE('03/05/1980','dd/mm/yyyy'), ‘K');
BŁĄD w linii 1:
ORA-01402: naruszenie klauzuli WHERE dla perspektywy z WITH CHECK
OPTION
2005/2006
Wykład "Podstawy baz danych"
12
Klastry
Indeksowy
Haszowy
CREATE CLUSTER nazwa_klastra
CREATE CLUSTER nazwa_klastra
( atrybut typ [,atrybut typ [,........] ]
( atrybut typ [,atrybut typ [,........] ]
[ PCTFREE liczba ]
[ PCTFREE liczba ]
[ PCTUSED liczba ]
[ PCTUSED liczba ]
[ INITRANS liczba ]
[ INITRANS liczba ]
[ MAXTRANS liczba ]
[ MAXTRANS liczba ]
[ SIZE liczba [ K | M] ]
[ SIZE liczba [ K | M] ]
[ TABLESPACE nazwa_przestrzeni ]
[ TABLESPACE nazwa_przestrzeni ]
[ STORAGE
[ STORAGE
( [ INITIAL liczba [ K | M ]]
( [ INITIAL liczba [ K | M ]]
[ NEXT liczba [ K | M ] ]
[ NEXT liczba [ K | M ] ]
[ PCTINCREASE liczba ]
[ PCTINCREASE liczba ]
[ MINEXTENS liczba ]
[ MINEXTENS liczba ]
[ MAXEXTENS liczba ] ) ];
[ MAXEXTENS liczba ] ) ]
HASHKEY liczba;
2005/2006
Wykład "Podstawy baz danych"
13
Klastry
Tworzenie indeksu na klastrze:
CREATE INDEX nazwa_indeksu
ON CLUSTER nazwa_klastra;
Usuwanie klastra:
DROP CLUSTER nazwa_klastra
[ INCLUDE TABLE [ CASCADE CONSTRAINTS ] ];
2005/2006
Wykład "Podstawy baz danych"
14
Klastry
Systemowa funkcja haszowa to x mod liczba.
1
13
6,
2
Funkcja
haszowa
x mod 5
3
13, 18,
4
9,
13 mod 5 = 3
2005/2006
Wykład "Podstawy baz danych"
15