๐ SQL Schema & Catalog
SQL Schema
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ๊ฐ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ํด ์๋ ํ
์ด๋ธ๊ณผ ๋ค๋ฅธ ๊ตฌ์กฐ๋ค์ ๊ทธ๋ฃน์ง๋ ๊ฐ๋
์ด๋ค.
Schema name์ผ๋ก ๊ตฌ๋ณ๋๋ค.
์คํค๋ง๋ฅผ ์์ ํ๋ ์ฌ์ฉ์๋ฅผ ๋ํ๋ด๋ authorization identifier์ ์คํค๋ง์ ์๋ ๊ฐ๊ฐ element์ descriptor๋ฅผ ํฌํจํ๋ค.
Schema element๋ table, constraints, views, domains ๋ฑ์ ํฌํจํ๋ค.
CREATE SCHEMA COMPANY AUTHORIZATION 'Joshua'
Catalog
์คํค๋ง์ ๋ชจ์์ผ๋ก, INFORMATION_SCHEMA
๋ผ๊ณ ๋ถ๋ฆฌ๋ ํน๋ณํ ์คํค๋ง๋ฅผ ํญ์ ๊ฐ์ง๊ณ ์๋ค.
Integrity constraints๋ ๊ฐ์ catalog์ ์คํค๋ง๋ค ์ฌ์ด์์๋ง ์ ์๋ ์ ์๋ค.
๊ฐ์ catalog์ ์๋ ์คํค๋ง๋ค์ type/domain๊ณผ ๊ฐ์ ํน์ element๋ฅผ ๊ณต์ ํ ์ ์๋ค.
๐ CREATE TABLE
์๋ก์ด relation R์ ์ ์ํ๋ค.
R์ ์ด๋ฆ์ ์ฃผ๊ณ ๋์, R์ attributes์ types(domains), ์ด๊ธฐ ์ ์ฝ์กฐ๊ฑด๋ค(NOT NULL or UNIQUE) ์ ์ ์ํ๋ค.
key, ์ํฐํฐ ๋ฌด๊ฒฐ์ฑ, ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ ์ ์ฝ์กฐ๊ฑด๋ค์ attribute ์ ์ธ ์ดํ์ ์ ์ํ ์ ์๋ค.
(ํ
์ด๋ธ ์์ฑ ํ์๋ ALTER TABLE
์ ์ฌ์ฉํด์ ์ถ๊ฐํ ์ ์์)
CREATE TABLE EMPLOYEE
{
...
}
ALTER TABLE EMPLOYEE ADD FOREIGN KEY (Super_ssn) REFERENCES EMPLOYEE(Ssn);
Base tables (base relations)
Table(relation)๊ณผ row(tuple)๋ค์ด ์ค์ ๋ก DBMS ์์ ์์ฑ๋๊ณ ์ ์ฅ๋๋ค.Virtual relations (views)
๋ฌผ๋ฆฌ์ ํ์ผ๊ณผ ์ค์ ๋ก ์ผ์นํ ์๋, ์ํ ์๋ ์๋ค.
view์ ์ํ tuple๋ค์ ๊ตฌ์ฒดํ ๋์ด ์์ง ์๋ ํ view๊ฐ ์ฐธ์กฐ๋ ๋๋ง ๊ณ์ฐ๋๋ค.
CREATE VIEW ๋ฅผ ํตํด ์์ฑ๋๋ค.์ฅ์ : 1) ์ ์ฅ๊ณต๊ฐ ๋ญ๋น๋ฅผ ์ค์ผ ์ ์๊ณ 2) ๊ถํ์ ์ ํํ ์ ์๋ค. 3) ๊ณ์ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ์ง ์์ ๋ ์ ์ฉ
๐งฉ Attribute์ Data Type๊ณผ Domain
- Numeric
์ ์ ํํ :INTEGER
,INT
,SMALLINT
, ์ค๋ผํด์์๋NUMBER
์ค์ ํํ :FLOAT
,REAL
,DOUBLE PRECISION
Formated number :DECIMAL(i, j)
,DEC(i, j)
,NUMERIC(i, j)
, ์ฌ๊ธฐ์ i: ์ ์ฒด ์๋ฆฟ์, j: ์์์ ์๋ ์๋ฆฟ์ - Charcter-string
๊ณ ์ ๊ธธ์ด :CHAR(n)
,CHARACTER(n)
, ์ฌ๊ธฐ์ n์ ์ต๋ ๊ฐ๋ฅ ๋ฌธ์ ์๋ฅผ ์๋ฏธํ๊ณ , n๋ณด๋ค ์งง์ผ๋ฉด ๋ฌธ์ ๋ค์ ๊ณต๋ฐฑ์ด ์ฑ์์ง๋ค.
๊ฐ๋ณ ๊ธธ์ด :VARCHAR(n)
,CHAR VARYING(n)
,CHARACTER VARYING(n)
, ์ด ์ธ์CLOB(CHARACTER LARGE OBJECT)
์ ๋ฌธ์์ฒ๋ผ ํฐ ํ ์คํธ ๊ฐ๋ค์ ๋ํ๋ผ ์ ์๋ค. - Bit-string
๊ณ ์ ๊ธธ์ด :BIT(n)
, ์ฌ๊ธฐ์ n์ ์ต๋ ๊ฐ๋ฅ bit ์๋ฅผ ์๋ฏธํ๊ณ , B'10101'๊ณผ ๊ฐ์ ํ์์ ์ฌ์ฉํด์ผ ํ๋ค.
๊ฐ๋ณ ๊ธธ์ด :BIT VARYING(n)
, ์ด ์ธ์BLOB(BINARY LARGE OBJECT)
์ ์คํ๊ฐ๋ฅํ ์ฝ๋๋ java ๊ฐ์ฒด์ฒ๋ผ ํฐ binary ๊ฐ๋ค์ ๋ํ๋ผ ์ ์๋ค. - Boolean
TRUE
orFALSE
orNULL
- Date
YYYY-MM-DD ํ์, ์ค๋ผํด์์๋to_date()
๋ฅผ ์ฌ์ฉ - Time
HH:MM:SS ํ์ - Timestamp
YYYY-MM-DD HH:MM:SS.xxxxxx ํ์์ผ๋ก, Date์ Time์ ํฉ์น๊ณ second์ ์์์ ์ดํ ์ต์ 6์๋ฆฌ๊ฐ ์ถ๊ฐ๋ ํ์ - Interval
Date, Time, Timestamp์ ์ ๋๊ฐ์ ์ฆ๊ฐ, ๊ฐ์์ํค๋๋ฐ ์ฌ์ฉํ๋ ์๋๊ฐ์ ๋ํ๋ผ ์ ์๋ค. - Domain
domain์ ๋ฐ์ดํฐ ํ์ ์ ์ฝ๊ฒ ๋ณ๊ฒฝํ ์ ์๊ณ , ์คํค๋ง์ ๊ฐ๋ ์ฑ์ ๋์ผ ์ ์๋ค.CREATE DOMAIN SSN_TYPE AS CHAR(9);
- Type
๊ฐ์ฒด๋ฅผ ์ ์ฅํ๋ ์ฉ๋๋ก, ์ฌ์ฉ์ ์ ์ ํ์ (UDTs)์ ์์ฑํ๋๋ฐ ์ฌ์ฉ๋๋ค.CREATE TYPE
๋ช ๋ น์ด๋ก ์์ฑ
๐ง SQL ์ ์ฝ์กฐ๊ฑด ์ค์
- Attribute ์ ์ฝ์กฐ๊ฑด ์ค์ ๋ฐฉ๋ฒ
DEFAULT <value>
๊ตฌ๋ฌธ์ผ๋ก default ๊ฐ ์ค์ NOT NULL
CHECK
๊ตฌ๋ฌธ์ผ๋ก domain ํ์ธ ๊ฐ๋ฅ
Dnumber INT NOT NULL CHECK (Dnumber > 0 and Dnumber < 10)
- Key ์ ์ฝ์กฐ๊ฑด ์ค์ ๋ฐฉ๋ฒ
PRIMARY KEY
๊ตฌ๋ฌธ์ผ๋ก Primary key ์ง์ Dnumber INT PRIMARY KEY PRIMARY KEY(State, Number)
UNIQUE
๊ตฌ๋ฌธ์ผ๋ก ํ๋ณดํค ์ง์ Dnumber VARCHAR(15) UNIQUE UNIQUE(State, Number)
FOREIGN KEY
๊ตฌ๋ฌธ์ผ๋ก Foreign key ์ง์ ,SET NULL
,CASCADE
๊ฐ์ ์ฐธ์กฐ ํธ๋ฆฌ๊ฑฐ ์ก์ ์ ์ ์ถ๊ฐํ ์ ์๋ค.FOREIGN KEY (Mgr_ssn) REFERENCES EMPLOYEE(Ssn)
'CS > Database' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Database] Basic SQL Queries (2) | 2023.01.22 |
---|---|
[Database] ER-to-Relational Mapping (0) | 2023.01.22 |
[Database] Relational Model (0) | 2023.01.22 |
[Database] Entity-Relationship(ER) Model (0) | 2023.01.22 |
[Database] Data Model & Schema (0) | 2023.01.22 |