![저작자표시-비영리-변경금지 88x31.png](https://licensebuttons.net/l/by-nc-nd/3.0/88x31.png)
1. 데이터베이스(Database)
데이터베이스(Database, DB)는 통합하여 관리되는 데이터의 집합체를 의미합니다. 데이터베이스는 자료를 구조화하여 중복된 데이터를 없애고 효율적인 처리를 할 수 있도록 관리되는데, 데이터베이스를 관리 및 제어하고 다수의 사용자가 데이터에 접근하여 이용할 수 있도록 해주는 소프트웨어를 데이터베이스 관리시스템(Database Management System, DBMS)라고 합니다.
DBMS의 유형은 계층형(Hierarchical), 네트워크형(Network), 관계형(Relational), 객체지향형(Object-Oriented), 객체관계형(Object-Relational) 등으로 분류됩니다.
1) 계층형 모델
계층형 모델은 데이터 간의 관계가 트리 형태로 구성되어 있는 모델입니다. 계층 간 1:M 형태로 구성 가능하며, 데이터를 세그먼트 단위로 관리하고 세그먼트 간의 계층을 트리 구조로 관리합니다.
대통령 아래 국무총리가 있고, 국무총리 아래 부가 있으며, 부 아래 청이 있습니다. 부모 세그먼트는 다수의 자식 세그먼트와 연결되지만 자식 세그먼트는 오직 하나의 부모 세그먼트와 연결됩니다.
이 모델은 한번 구축하면 구조 변경이 어렵고 같은 계층에 접근하는 것이 비효율적이기 때문에 현재는 거의 쓰이고 있지 않습니다.
2) 네트워크형 모델
네트워크형 모델은 계층형 DBMS의 단점을 보완하여 데이터 간에 M:N 구성이 가능한 모델입니다.
계층형 모델의 경우 경찰청에서 국세청에 연결되기 위해서는 행정안전부 -> 국무총리 -> 기획재정부 -> 국세청 순서를 거쳐야 하지만, 네트워크형 모델의 경우 바로 연결될 수 있습니다.
하지만 구조가 복잡하여 유지보수 비용이 많이 들기때문에 계층형과 마찬가지로 현재는 거의 사용하지 않습니다.
3) 관계형 모델
관계형 모델은 키(key)와 값(value)으로 이루어진 데이터들을 행(row)과 열(column)로 구성된 테이블(table) 형태로 저장하고 관리하는 데이터베이스 모델입니다.
오라클(Oracle), SQL Server, MySQL, MariaDB, PostgreSQL 등 대부분의 DBMS는 관계형 DBMS에 해당하며, SQL을 사용하여 데이터를 처리합니다.
2. SQL(Structured Query Language)
SQL(Structured Query Language)은 관계형 데이터베이스에서 사용되는 비절차적 언어로, 데이터의 정의(Definition), 조작(Manipulation), 제어(Control) 등을 위해 사용됩니다.
DBMS 벤더에 따라 사용하는 SQL에 다소 차이가 있기때문에 미국 표준 협회(American National Standards Institute, ANSI)에서는 SQL에 대한 표준을 정하여 발표하였으며, 이를 표준 SQL(ANSI SQL)이라고 합니다.
각각의 벤더는 표준 SQL을 포함하여 추가로 자신만의 기능을 가지고 있는데, 이렇게 변형된 SQL을 오라클에서는 PL/SQL, SQL Server에서는 T-SQL, MySQL에서는 SQL 이라고 부릅니다.
현업에서는 오라클을 많이 사용하고 있으므로 PL/SQL 위주로 설명하도록 하겠습니다.
3. 데이터 정의어(Data Definition Language, DDL)
데이터 정의어(Data Definition Language, DDL)는 데이터베이스의 테이블과 같은 데이터 구조나 구성 요소를 생성, 삭제, 변경하는 언어입니다.
DDL의 대상은 테이블(table), 뷰(view), 인덱스(index), 스키마(Schema) 등의 데이터베이스 객체이며, 명령어는 CREATE, ALTER, RENAME, DROP, TRUNCATE가 있습니다.
1) CREATE
CREATE 명령어는 데이터베이스, 테이블, 인덱스 등을 생성하는 명령어이며, 테이블을 생성하기 위한 CREATE TABLE 문법은 다음과 같습니다.
CREATE TABLE 문법
CREATE TABLE 테이블명( 컬럼1 컬럼1_데이터타입 [NOT NULL] , 컬럼2 컬럼2_데이터타입 [NOT NULL] ... , CONSTRAINT 기본키명 PRIMARY KEY(컬럼명) , CONSTRAINT 고유키명 UNIQUE(컬럼명[, 컬럼명, ...]) , CONSTRAINT 외래키명 FOREIGN KEY(컬럼명) REFERENCES 참조테이블(참조테이블_기본키) , CONSTRAINT 제약조건명 CHECK(조건식) ) |
데이터 타입에는 고정형 길이 문자 데이터인 CHARACTER, 가변형 문자 데이터인 VARCHAR, 숫자 데이터인 NUMERIC, 날짜와 시각 데이터인 DATETIME이 있습니다.
오라클에서는 주로 CHARACTER를 CHAR, VARCHAR를 VARCHAR2, NUMERIC을 NUMBER, DATETIME을 DATE로 표현합니다. 또한 대용량 데이터의 경우 CLOB, BLOB 타입을 사용합니다.
제약조건은 데이터베이스 객체 중 하나이며, 데이터 무결성을 보장하기 위한 용도로 사용됩니다.
무결성은 데이터베이스에 저장된 값들이 정확하고 일관성 있는 데이터임을 나타내는 특성으로, 여기에는 하나의 테이블에 중복된 행이 존재하지 않도록 보장하는 개체 무결성과 참조 관계에 있는 두 테이블의 데이터가 항상 일관된 값을 가짐을 보장하는 참조 무결성이 있습니다.
제약조건에는 NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, FOREIGN KEY, CHECK 등이 있습니다. UNIQUE와 PRIMARY KEY는 개체 무결성을 보장하고, FOREIGN KEY는 참조 무결성을 보장합니다.
NOT NULL의 경우 해당 컬럼에 반드시 데이터가 입력되도록 합니다. 만약 NULL이 입력된다면 오류가 발생합니다.
NOT NULL 제약조건
CREATE TABLE EMP ( EMP_ID CHAR(8) NOT NULL , EMP_NAME VARCHAR2(20) NOT NULL , BIRTH_DAY DATE ) |
DEFAULT는 기본값을 나타내며, 데이터가 입력되지 않으면 기본값이 입력됩니다.
DEFAULT 제약조건
CREATE TABLE EMP ( EMP_ID CHAR(8) NOT NULL , EMP_NAME VARCHAR2(20) DEFAULT 'anonymous' NULL , BIRTH_DAY DATE ) |
UNIQUE는 테이블의 행을 고유하게 식별하기 위한 고유키를 정의하는 제약조건입니다. 동일한 컬럼에 대하여 중복된 값을 입력할 수 없지만, NULL의 경우 고유키의 제약대상이 아니므로 중복 입력이 가능합니다.
UNIQUE 제약조건
CREATE TABLE EMP ( EMP_ID CHAR(8) UNIQUE , EMP_NAME VARCHAR2(20) DEFAULT 'anonymous' NULL , BIRTH_DAY DATE ) |
해당 쿼리의 경우 EMP_ID가 고유키가 되며, 중복된 값이 입력되면 개체 무결성 제약조건 위반으로 오류가 발생합니다. 다만, NULL의 경우 중복입력이 되더라도 오류를 일으키지 않고 정상적으로 데이터가 입력됩니다.
CONSTRAINT 키워드를 사용하여 고유키 이름을 지정할 수도 있씁니다.
고유키 이름 설정
CREATE TABLE EMP ( EMP_ID CHAR(8) , EMP_NAME VARCHAR2(20) DEFAULT 'anonymous' NULL , BIRTH_DAY DATE , CONSTRAINT EMP_UNIQUE UNIQUE(EMP_ID) ) |
PRIMARY KEY는 테이블의 행을 고유하게 식별하기 위한 기본키를 정의하는 제약조건입니다. UNIQUE + NOT NULL에 해당하기 때문에 NULL의 입력이 불가합니다.
PRIMARY KEY 제약조건
CREATE TABLE EMP ( EMP_ID CHAR(8) PRIMARY KEY , EMP_NAME VARCHAR2(20) DEFAULT 'anonymous' NULL , BIRTH_DAY DATE ) |
UNIQUE와 마찬가지로 CONSTRAINT 키워드를 사용하여 선언할 수도 있습니다.
기본키 이름 설정
CREATE TABLE EMP ( EMP_ID CHAR(8) , EMP_NAME VARCHAR2(20) DEFAULT 'anonymous' NULL , BIRTH_DAY DATE , CONSTRAINT EMP_PK PRIMARY KEY(EMP_ID) ) |
FOREIGN KEY는 테이블 간의 참조 무결성을 위한 제약조건입니다.
FOREIGN KEY 제약조건
CREATE TABLE BOARD ( DOCUMENT_IDX NUMBER PRIMARY KEY , TITLE VARCHAR2(50) NOT NULL , CONTENTS CLOB );
CREATE TABLE COMMENTS ( COMMENT_IDX NUMBER PRIMARY KEY , DOCUMENT_IDX NUMBER NOT NULL REFERENCES BOARD(DOCUMENT_IDX) , CONTENTS CLOB ); |
하나의 게시글에는 여러 댓글이 달릴 수 있으므로, BOARD COMMENTS는 1:M의 관계를 가집니다. 이때 댓글이 어느 게시글에 달렸는지 알기 위해서 DOCUMENT_IDX 컬럼을 통해 게시글을 참조하게 되므로, 참조 무결성을 보장하기 위해 DOCUMENT_IDX를 외래키로 설정합니다.
다른 제약조건과 마찬가지로 CONSTRAINT 키워드를 통해 외래키 이름을 지정할 수 있습니다.
외래키 이름 설정
CREATE TABLE COMMENTS ( COMMENT_IDX NUMBER PRIMARY KEY , DOCUMENT_IDX NUMBER NOT NULL , CONSTRAINT COMMENT_FK FOREIGN KEY(DOCUMENT_IDX) REFERENCES BOARD(DOCUMENT_IDX) , CONTENTS CLOB ); |
참조 무결성 규칙은 자식 테이블의 입력 참조 무결성 규칙과 부모 테이블의 삭제/수정 참조 무결성 규칙으로 나눠집니다.
입력 참조 무결성 규칙에는 DEPENDENT, AUTOMATIC, SET NULL, SET DEFAULT가 있습니다.
DEPENDENT는 대응되는 부모 테이블에 인스턴스가 존재할 때만 자식 테이블에 데이터의 입력을 허용하여 무결성을 보장합니다.
외래키를 설정할 때 NOT NULL 제약조건을 설정해준다면 자식 테이블이 부모 테이블에 대하여 DEPENDENT 상태가 되어 무결성을 보장할 수 있습니다.
만약 아래 쿼리처럼 존재하지 않는 document_idx가 1인 게시글에 댓글을 입력한다면 참조 무결성 위반이 되어 오류를 발생시킵니다.
참조 무결성 제약 조건 위반
INSERT INTO COMMENTS VALUES (1, 1, '댓글'); |
참조 무결성 제약 조건 위반으로 인한 오류 발생 ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA0sAAADnCAYAAADPcs1+AAAgAElEQVR4nO3da5Ac5Z3n+191yxJCQiAEjbjMmB0h1FSWxsZmZZidtTwzwZqxkUc97qyyY9c0nnM0a4e9x4xXsWFtxCordV7IJ0bHNjFM2GPNsRFzdk1VtkNa5AseYj0jz4kwVmADq8qkaaMZe82laW5GFwQauvO8yLpkVWVVZd26ulvfT0QHKC/P82RWZlX+83nyn4np6Wl/ZGREYbOzs6qd1g8XXXRRW8uvWrWqreWfe+5U0/nXXruuZRlvvfVW2/UCAAAAWPqGBt0AAAAAAFiMCJYAAAAAIALBEgAAAABEIFgCAAAAgAgESwAAAAAQgWAJAAAAACIQLAEAAABAhBXtrrD+b34pf85vOD8h6bW7r++mTQAAAAAwcG0HS4nLVmn+322Jnnfvk/J9X+vv/wUBEwAAAIAlrS/D8EoBEwAAAAAsVW33LLWUSEiSVr6Dx6EAAAAALF09DZb8z72r/P+XfL3Qy6IBAAAAYEHR/QMAAAAAEdoOluZfebMf7QAAAACARaW3w/B8X3Nzc5KkM+fmelk0AAAAACyongVLvu/r1KlT5X//ehmmDn/xdOP3SwFANy56Ph972TevSfexJeiluJ/rO//osC56Pq8nn+NGIwAsJj0Llubn5yVJF//BqHy/Oqg498One1UNAAAAACyInid4KAVKK3860+uiAQAAAGDBkA0PALDsPf3jlLb/2JPkaNeXUjrwyqBbBABYCnoWLA0PD1f9+/x7N/aqaAC4cD38FV12z6ORs54+nNCubQltnFjYJg2qXk1ntPFLQ9rYKNh5xdb2Lw0Vlyn+HbIVbyC4o12161b9NQmwWrVL0pF7PqZb73s2VksAAItHR88sJe59MnJ6OKnDyp/OtB8w+b7efPAhaXhIF6V3dNK0vjs5MaRHDjeYOZbTp/Z4ym2z9ZokKalbjhd0y2gw+7X9KeX2e8E/Ri1ljltaL0lTjh65K6OTU8E6m/ZYWn84o5NjOWX2mM3rDJX1aqPlRpPatCev28eSwb8PZ/S1Cafpdm46NK/bx5ouUqWn+2WPp1w77Zty9Mhdtk5OlcowdfsDOW0ajd/+KlOOdt1l62iovIMPjOuhbZP6yKmcykfmlKcD+9M6cLiy3O4Hcto9KkmeDmxL6cBUsE3HjlvaUl7P1vZtxQu4MUu7n7JjLJfTzM5JbWyyX3YcmtfBMenoxJB2HZakpHYfLwTtOZypXncsp5k9XqX8KKOWZo5bNfslo6NTpfmmdo+5Oqq8ju1JNtmhIXXHXulYcPTIuoxOhuZsOpSTJqqn1R470WWW1g8fw54e25bSY1P186qOP5naNOboZIzzbX3p3y3O3+48q7vveVQ7v3JP9eSphLbfJe0Y87V7T0JHj3RZTVyDqrdkQ1JbJD0tQ1s2NFrI1MHPh87TotYBk6mDn2/0eXk6cKhJUo0Y7dr52XF98c5JHfnsPdrZsi0AgMWi7Z6llybeqV/929+s+3v+E++sWq6TnqW5f/yl3vz29/RW/qjefvpk6xUWPU+P3VUKEBqYspXbVrrQCtY5uT+jx6ak16aardiGKU8nJ8IXhIMWY7/EdThT3H+hbZty9Mi2FgFmI1O2tt81qY/syWvm1Hzw94Clp+/K6GjVgo52bUvpqCwdKy53bI90dFs4UMlph5LSlK0DobY8fdjR06NJbRm1NHPIirmcGQQ4h8wgiCm1rfh3MBTY7jg0r2N7ktoyKh24yw4mjuWKbUxqy55CUI5UVdbBsWDdmVPzmgkHbaXtvcvWlgcqdR7bIx1d8GPK08nDi+U4Vt/P36n7vqIjN4zrC3fUzBj1dey4r917VPM59dmg6i3ZkNSNxf8uqttpcdp1w7h23vCovkjvEgAsKW0HS+9IJHTJO4bq/i4eTkgKMt/V/sV19sBfadVHP6RV6Y/oja/8teQvvlTdmw7N61On5vWpU8W726OWMqeK04oXsplToTvfU7b+tnhBuX5PvrJO8c70a4cdvSZp/Z5cpZzivPWjoTqLF7eV+kNtCLUtU7zDX7XccUubQnVVb0vNdhzq7E54r/dLvPY5emTC0WtKatOhQnl7M4dMrZd0cqLSkxDX0f2OdjyQ046xUE/JaCnwCS03kdHRsZyOHTLLF41biv8+OpEJ3cU2tHtPUkf3F4MWeTp62NOWm4yamuMu14YxUzum7GLw1qXDkzoqs9hrFtgyltPuNnofgzbl9KlTOW2Sao4JU7eX/z+pW47P6/YxU7efmq8sr2Rwzuy3q3ubxnKV40yVY7G6ZzTUIzVq6ZbQvKrj71ROt8c836R45283jjz8rEbvuFU9KGqZMIOemw0xezJrPP3jlDZ+qfbGRy/Ea9fOO67T1MOPqlf3wQAA/bdoEjycf+QflFhzsVb9wb/Sqo/crqGrrtT5H/xo0M3qzqipTaMRF3ch60eDi+HLR43KsJ5iYNBwCM9hW7l1oZ6Tm5r/QL/2lKdX2217P8XYL3GU1l8fHmIoaf1YTplDptrvhXD00GFDWyKvTE0dLA/Bc/TQYVMHowLLsZx2jzpVPURbxkxtmXKCoXaHbR2YMrU7Ytha3OXKisP0pMoQvNo2lwKwrpP3j40Hgdd+r6qsUi9We0z91pikKVuPhQO5KSfooRmzaobZTZY/53+zJynJ0T/2IgCMq8n51tH5G9czkzryjDR6w3XdlbPMNB5+F2Pd2wqaqR2iF/WcU+TzSp4OHGr8XFKcdo3ecatGn3lUR57pfBsAAAurZ+9Z6tabznd0yf/9X3TmP/9fSlyyRhd/5m6d2v1/auUd2wfdtC4kdcseUycnHD0yMa5NhyJ6CcYs3bLf0WMTKZ2cSGr9qKFNY+PaNGZG3pk+OTFUDjAuL96BvyWi5pMTQzpZ9fB1Urc8EHrOoniXPqrN0dN7KcZ+idG+V6c8SaZuibpYHxvXpglHJ6dcSTEv5qc8TY/GGN7TYrkdY8nK806SNGpp95itXfsdbZEjjeW0Q54O1K4Yd7kpWxvX2eV1mtmyJ68d+1M6cNiqD6ZGLR073mDFunmmDh6XDuxP60/XFQOmUVO791jaPdb+Xf5Neyw9dtjWySOObh8LgoqT+4OhmZt2hoMMT4/tdyQltWksqfUytX5/9Xr91PJ8a/P8bcszz2pK12nnDV2Ws8zsuHNezV9M4WjXl6qfYdtyW0Ffb7T4BkvHPt/8POpNuyTdcJ1G9aymnpHE5woAS8Ki6Fk6d/C/KbFqpRJr10grVsg/95aGrrlKQ1du0Bt/9f8OunndGcsFw4EOZxo8QxNcgGUOWbplzJDk6LH9GeU6feYmUjBMrXy3fiwXDCmKGkI1FtwVbye5Q0ea7ZfF0L4e27HTlA5ntOtw8f+7Wa70nFHdc0VRkjp4yOxN79Koqd2HCsVntAo6tiepoxOpzob5lYbCHbaLQyWLvUU1Q+TKvU3y9Ni2IX2tlCSkvF4LU0GvUP+e1+v3+XudRrmojm+DpWOfn9dMzd+x2+IE9F1kwwMALFsDD5bmZ2b11sN/rzV775ESCQ1vvl7Dm6+XEgmt/cJn9M+P/EjzM7ODbmZXNh0Knrk4OZFuPBxvzNIth3LKHK88G3GyLhNY6fmlSg/Ra/tT+tq6+mdzSs9alIejRZQ1aHH2SzOXjwZDsh6LuhAuDd0abeOZn9GkbpzyWj/P0GK5o4c93Thac3E2VsqSZzZ/zifuclI5e56kINvdNjt6uTFLu2XrT3saMCS1ZczS1/ckdfRI88yFjQQ9SMFQydKQyk17rKoexdrn7CoWJtFD3PMt7vnbvmIvBLrgaNeXMpq+rdAiaDJ1MCLQCv4K2t3F8D8AwNI18GDpjb+4Xyu3vVtDVwa/RP6vT8l//bQkaeiaq7Tivb+tN/7y0CCb2AOloWJeTYas0t3ycDYtSVNu80xabfSurB/LFZM+BMkQFpdG+yWe9XuKiSv2p/VI6ML5tcOZYurxYOhWO+35yJirh1r2CJj6yJijXVH783AmeNYo4rPZfXxeM6dyLXuD4i4XX1K795h6er+t6Q5LqKQjr7elnYA0rPhsUiV1d/FZprJiIBxOFhJKtND+M29Jrb9JxeQipSDM08n96SD4uanB0M+G51uH529c4SFbXXp6f0ob1w01TT3fD4Oqt8r0pI7K0UPlg9/Uwcjgp1nPUo96lYpDK+ktBIClY6DPLM2fOau3TzylFbe8S/MzL8l/+21d/Om7pOEhzb/wohJr12j+7Bua+59Paf7UGenKVYNsrqSo9wnZyq2rpGf+1CEj9D4XW7mJpD51yAwybh1ukJ1tytEj2xw9Ujt9bLzY81Kps/5ZJKn0TE79cqZuP5XTpj0F3T41pEcOZ/S1w5PBNNW+16a0HcV1Br5f4rTP1O2HJvXqhKOTE6m6/VI19DCmHYcsPbQtpV3K62A50PJ0dH+Q1ruUFW/HoZx2rMtou6SvFzPiPX04oz+dcLTj0Pxg0io3M5bT7v1DOnA4KXU4hPHoREoHlK88ozQVJLLY8UBnmclKz649VryQLgW/Qdl25b1cU7Zy65wgm51C0+XokXWuXttjFJ9rCkSdI+UMi8VnpV7bn1Fuf6auLaX145xvZS3O347dMK6dN0zqyDPPSuouycPRw55KQfNCGlS9Za/Y2v4dRztuszT9nZQOTLTqIYp+R1OvTD38qKZuuJXn0ABgCWk7WPqDb7S+zXnXzZdr4ubLWy43tHaNVn/mbs0/94Le+t7/iG7gb/2mVm2/TUPr1rbb1EUmSLBwclv1+4XW3yTpppxuH53UY+W73cGLLW/p4QXGpkM5/ePhxTcUr9F+iW0sp8xN4z18Ka2pg8cNHZ1Ia+NEpbdqy1hOXz9uhoKgYLkD+9Pavi5Trnf38flgGF3ohbJH1zmVdySFX1YrVRI1tFzO08FDKvdmhdcrKyZ7qPQCpbRxfyVT3u49pg5MOHWB3IFtQ+V6dHhIGyekLXsKdVnuduyxgp6CUvAwamr3A4WqdOJtKyXiaJSoo9dGLWWOJ3t2vPT7/N15x3X64sOPauqz49Xpw6cS2r4t/KLVhDYWA7wdh/zqZB5TdvAi4TGru89qkPV24Okfp7T9x9LuifkgQLotqV1fGtL2lsPx+odU8ACw9CSmp6f9kZGRqomzs7OqnVbyB994Ro/92XsbFnjLl38qKV7AdNFFF7XV2FWr2utZeu65U03nX3vtupZlvPXWW+V6Xzy9+N77BGB5uOj5fMTUZ3X36G7pKw/q/tCLad+8Jh2/4MMZbZxwtft4l4FtuwZUbxAkedrSICgqzdeNOc3cWf3etl0t3sHUqMxmyp/rM5O69c5n9YWpe7QzYrl3/tFhXfR8Xk8+N9dW+QCA/urbMLwHHg/e7BOnhwkAEOU63f+VW3Xrw49Kd9zaUQlHjzihxCELZ1D1brmtoJnbOplv6uDn+zdc8Mh9k9JnD0QGSgCAxauvCR5KAdNyc9W6fRfUvwEM0B336NGvdBYoScEwzJmoFyj32aDqXax2fuVBPfpZXjAMAEtNz4Olx/7sveW/5eiqdfv04qm95YBiuf8bAAAAuFD1/JmlsFu+/FP9jz9pnPZnqT2zpIStF0/tLc8rBRYXyr8B9E/0M0vR2npmCQMV93PlmSUAWJw6DpZeOHVe2R/8Qn9l3lg1/9870zrwkU26ZNVwz4OlQWk3SAMAAACw9HWc4OGxX53We69bq58+e0aXrBouT3/vdWt17Jlf605j+bzu/PXXXx90EwAAAAAssI6fWfrZs6d19aWrdM26ldr90DP6jw89o0tWDevqS1fpsWdP97KNAAAAALDguk7wcPW6lfIlJZTQ1etWSryKCAAAAMAy0PEwvPdcd4leeP0tfcd7RR/YdJkuuWhY33p8VqfffFu3XHdJL9sIAAAAAAuu42DpAzdcpt0PndSf3naN7kxWnk/69860dnzwip40DgAAAAAGpeNg6ZJVw3WZ8CRFTrtQ/OIXv9DU1JTWrVun3/md3xl0cwAAAAB0oaNg6ZYv/7TX7VjSzp07pyeeeEKvvPKKJOnVV18dcIsAAAAAdKvtYKnZe5MuRL/4xS/01FNPaW6OFwkCAAAAy0nHw/Ag/exnP9Pzzz8/6GYAAAAA6IOuU4dfyAiUAAAAgOWLYKkL11xzzaCbAAAAAKBPCJa68J73vEepVErDw8ODbgoAAACAHiNY6tL111+vD3zgA9qwYUPrhQEAAAAsGQRLPbB69WrddtttSqVSWrFihS6//PJBNwkAAABAl8iG10PXX3+9rr/++kE3AwAAAEAP0LMEAAAAABEIlgAAAAAgAsESAAAAAEQgWAIAAACACARLAAAAABChYTa8kydPLmQ7AAAAAGBRaRgsbdq0aSHbAQAAAACLCu9ZAgAA6IMf/Py0fvDMKX3whnX64OZL2l7/899/Tk++cC728u+6erW+9IfXtl0PgMZ4ZgkAAKCHfvDz0/q3+V/q0Wff0KrhIf3XJ1/Tx3K/1A9+frqtcv7Tv75KqatWaziRaLns6hVDuvW6NZ02GUADienpaX9kZKRq4uzsrGqnAQAAoLEf/Py0Hnj8Vd145UWSpB/9U3VwdO26lTo/5+uT77m8rZ6mmTNva/+xF/XU7Jua8/2qeatXDOmumy9Xeutl3W8AgDoESwAAAF2qDJlLSPJbLJ3QTSOrdN+d17VVRyloKrz4plavSBAkAQuAYAkAAAAAIpA6HAAAAAAiNAyWTpw4sZDtwALauXPnoJsAAAAALHoNg6WJiQkl9kwtZFuwQO4/coSACQAAAGiB1OEXoLun3qcjR44MuhkAAADAotb0pbT+/tGFagcW2KFDPxl0EwAAAIBFjZ4lAAAAAIhAsAQAAAAAEZoOw4uSuPfJlsv4n3tXR40BAAAAgMWio56lT956nT55a/DWaf9z7yr/lf6d+MoTvWshAAAAAAxAR8GS78/L9+cbz7/n3bF6oCTJSSeUSFT+0k4nLYpRR4cFd7NuzBqUTqRku32sAgAAAEDbOgqW7v/J87r/J89LCobllf7C/47DSSeUVl6+7xf/CjIcW25lASVSoX/HK7T9dXqxbttc2amEEom0OgnFEolEV/MBAAAANNf2M0uSykPwvvnos+Xhd6femtOlXyuU/906YHLkOIayBTM0zZCVNzppUlNm3pc/gHWbce2Mssm8/IKUTthtr+/7vhKJhHy/vnWNpgMAAACIr2fZ8NatGu5VUZJCw9/crFKJ8FC4Uo9M6a/SM9NoHddO1Qylc5SuGfoXf10FPVAR9UeV24hhFeTnzcYLxFAKmMIIlAAAAIDe6ChY+uajz+qbjz4rqZtheKasrJRNRT+vY+b9IJgwsir4fjmwcG1byvnloXt501G6GJU0Wqeao3QiLeUrZZierWSsdUvBk5QvDx005dluw3L7PaQvHDARKAEAAAC909kwvNuulSR988fPVaUJT9z7pM7/h9+WJK38i//ZshzDKshPppVIJZSVqbyfV6u+FsPKKzxQzzRNyfbkSoo/gM+QkQyVYVkx13NkZ6VsIdxOU8HqXhfldqfZkDwAAAAAnelsGJ6fCP4ivGMooXcMtZFcwMxXeogSCaVipIVz7VRlGFzbmepKPVodrOt68pRUMjIq66LcLpUCJZI6AAAAAL0zwGF41cy8L7+QlbKZJmm0iwGVa1Uy6HXw3I9hFYIATen2Ai7PbTqsruNyuxDuUSJgAgAAAHqnLy+lDQ/Na4uRVLLZfMeRI1P5UIDkel5ndakSoBmOHe89R0lDhjx5LZZtu9wORQ29I2ACAAAAeqNn2fDa5tpK1fS8uLYtxzA1Hh7m5roqh0O1wYprK5ONiEbC69RxZNdFMKGhdc3WNSxZpqtsqjoDnl1M8NC03B5r9owSARMAAADQvY4SPJSG4En171OKPQTPsFQw00ok0qFpWRUKViVRg2kpa6SUTiSCZ5vylnJZR6lUQtnS8nlTqfBriurWqR2mZ2pcKSUSpcDGULZQCBI2tFw36DUq2CmlysFIkJhCMhqX2wetkjmQ7AEAAADoTmJ6etofGRmpmjg7O6vNmzcPqElYCIcOHdLOnTsH3QwAAABg0RrcMDwAAAAAWMQIlgAAAAAgAsESAAAAAEQgWAIAAACACB1lw8PycOTIkUE3AQAAAFi0CJYuUBMTE4NuAgAAALCoMQwPAAAAACIQLAEAAABABIIlAAAAAIhAsAQAAAAAEQiWAAAAACACwRIAAAAARCBYAgAAAIAIBEsAAAAAEIFgCQAAAAAiECwBAAAAQASCJQAAAACIQLAEAAAAABEIlgAAAAAgAsESAAAAAEQgWAIAAACACARLAAAAABBhUQRL5x7+e81++C69lPm0zj3894NuDgAAAAAMPliam5nVmW/mNH/mrOZmZnX6L76h+TNnF7QNTjqhRKLyl3bql3HtVNUyiURKthtdVipqRgP15SaUSNmKX0IfOOlyW8rbEpqWSCSUqN1JrebLlZ1qNr9ckNI1+za8jxqu1k3b5SjddH7N5xTx+XQ6v61ta7G9ddtdtVgi1nLFVgWfVQfHYdP9MMBjKA4n3azMwVvs7RuUhdgvrp1SImXLblCXk44+XyLb1sNz1rVTDctvdH43+r1rtB9L2+62WD+emu/aRtvUxXdtVfs6WL/SzkbfIdXfQ1X7b9C/3QD6YuDB0tn785qbmdXqO35PK99taP7MWZ29P79g9TvphNLKy/f94l9BhhP+wgu+GFOOqUJ5GV9+wZSTai8wasgM1+/LL1gyui+1O0ZWBd9XwTIkubJtKR/aR1kvHdr2VvMlJ51SNpmvml/9w1z6AUqr9rfXsArBOnF3Slttl1zbk1men5fp1M5PVX3++WRWqVDbu5nf9raFBBc34W0Lts90UtE/2lXHWV7JbCr6QsedlCNDhutoso3Du/l+GOwx1DdOenAXSIOsuxeWyr5z0sFxXbBkmabkeTXrufI8Sa4rL2K6YSRDRfXpnC1XaSuVdmTmS99/tZvS+PfOtLIyHLsmQHA16bgyreA3qfXvZbOmpZRI2DIK4W33lVOlzl5816a9bHF+QVm1t37r7xBXdiolxyyU2296xf2XD8rL9OKaAMDiMj097f/617+u+puenvYXwtsvvOi/8P4/9l94/x/7bz//YtW/3/rZiQVoQd43ZfjZQuMlClnDl5H1IxcpZH2jZv28Kd9oVmBU+WY+9vILIm823ua4y4TnF7K+IdOv2sqaaZX90OgzKfhZQ37LXdWDtld/JnnfVE29VW3vdn4b21bbxobbEJQXPg7zpuqOs0bHXiFr+Ea20OaxHGc7a1dZ6GOoD+Icb8ux7l5YEvuu4GeN0LEU8Z1fmmbUnsM1y/bjnG35XVWl9XlRV2fVfurivMqbvpp9F5TL7+a7NOJ7tM3v4lbfIa1/r/O+2XI7ASw1A+1Zen3/fZKki8c/rOGrRzS8cURr7k5Lks4sYO9SY47sbOWuWh3DkmW6ytr9uo8d3OVKO6W7XSnZbtS04tK1Q/oi7phFrdd3nivXMJQMTzOSSsqTV2yDYRXk580FalBr5bvBridPpsxw04xxmYYjx+nB/CiurVTTz6f6bm9E62VZptys3bSHxXOjKnBkZyVz3JBpmnKdyXh33zvZznZ0ewy13Kf1Q5pKQ2obDdspD1tys0rVnG/V52J9vXVlVvV0RJ+r4fZF1d1wyFerHpSqYWHVd9Sbf6e03kfFpaqGXqWdRvuu0XdUzfDLqDb26HOr3ze2sjI1XjrRjHGZhis33IXkuXJNS1ZS8jy3erpRWref56wU7OO0vGxB3XyNBr1LTrENrmzbadLmuIrl5PNq2rR+fJe2U75a/Q4VP0Oz2VaYMk1HNr1LwLIysGDp3Pd/qPNPuEGANH5nefoa804NrV2j80+4evMfftLnVpiyslI21eAiKurLtUbSMCKGZfSWZ9tSLhhWUBpZUTvNtVNKZZN1w5hqLwSiyuqE4zhSMtnwR7RqftKQUTdERZJqLjoWSNO2u7YyxWBBUvRFeli38zvhTspxmx+XMk2ZoUCivgxbtmMoa9UU4jhyShd4pinTzSrWvYAOtnMpHENuNqWMcpVzSpVhNmbeDy6sisM+SxdZtUN9/HxS2VTlAr/uXM1JmYgL9mbnalTdZsQQMcdxZJjjDfdxEGiEh4WZ8orbF/c7pdk+Kl3EK+9XDVtKNth3Udvtlv9dHDplOkq3eFCmk88tSv3+MzRuGsGxGV7GSNbdXHA9r3L89vOclSc7lZZj5iOH3oUqaP57JxVvABYv9h1bWWVVqS7G+pHtnpTjGjJafTl0/V1a/Gzs0E2HTFbKWkGQ1vV3sSfXNWTIDoLsBjdCTNOUO4gfNgB9M7Bg6cz9wY/NmrvTGr56pNKgtWvKvUun77u/78kegjtJSWWjxil7bssgyEj24DK41YPtplUf2FRNC3oDsoXwnTtDVi5iDHpUWW1y7ZTSjql8g4uMuvnFu3fpqru/C/hcSbO2Ba2p3PlOubJiBpJew6uaLucblgpdBrORwsdZRspF1FF9cRhc3Dlddg1FbeeCH0Od7tOqC9DgYqx5b1vxXMyF7sablrLlu9cR56phKRf10Fq756ppyqx6zsyR4xiVwL9RW6u+N0xZltFgXqPvlFb7qPpCuWVPRc12G1a+6t9RQWF9Ge1+bo0lk9WtNZLJUP2uPK+4j6v2f5xeiBhinLNyssq6UUFUvaa/d0WmlZWcSdlOfa9SnPWjJZXs4vss7nepYRVUMJ1iMBM8W9Q8gIxXvqTizVPJcaRcMXAvZFV1I0RScGOnzzdQASysgQRLZ4pJHYY3jujiP/y9uvlrzDu18t2G5mZmddb5Tv8bVHyINm8GF83lh8qTRsvhB67XgztItQkeai4ga3+s66a5nryoH6OIISNRZbXDSSeKd5ujh1REzzdkFYLECaUffscsKGvEuNvYQ43bblbdWXdaDc0parUvu53fc6XjrJCVEdVjVLxzHb64Nrar/1kAABp/SURBVINoKXQxUJvNqvUFU+12LqVjyKgpvOXNEdeTJ7d4MVm5+5x1ixdkDc7VqHLbPz5MmaYrpxQtOY6cZgFXo++NZvMivlOa76NSb0T8jHVR2101pC5GOW1/bpGKiRtqhYMid1KOW9pPSRnlfVPshej22Gx1zhaXyZtu/UV7izLrfu9KjHGZyirrhXuV2li/D+J9lwbDNSs9ir5yysRK5NHOuRYOIA0rF7oRAmC5WvBgaW5mVm8UA6BLv/CZ8rSZ7R/VzPaPam7mJUnS2mLv0rnJ72ruhdkFaZuZD36UlM0Ed06NpJJq/kXouW7ToUTLR/F5AuWDjHFtzzerMkDlTU+u293dxt61vaadhdC4/YbDv4q6nd+JGMdl1XC6uvUtFfJmXc+MO+nIrb3QTzuSwmPwzZpMXsX9GWs7l/Ix1I7afVS8C93zrsKImkNDwRzHad6zEaPnvBeCjI++8krHDnYqihfkrtXwZtLCqwSl7qQj1zSLx2poiF7t+denc7bconxBWcNRuo3sgnW/d5XKNG4aLX/XGq9f2/YY2y51/11aHDaYC51nhpVTVsUgsx/fxUWxeqYALFkLHiydvT+v+TNng1ThN6caLrfy5pQu+t1tmj9zdmGTPRjJ0Jjm4jAku8EPUMMx5Aus5kH3srhjxWMop21ucKHSan4t17bllC8y+qvdtlWJ2rfh5w+6nd8RU1bWaHxcFh+obvasSmloWCUICoYNGdlC/UV+NsYQphjbuZSPodganYtV6ud3O9SxzDRluq48OXKcFsdY0pDRqK19+E4pXVzXp6duwnHkqHq4Zk9682MxlKxN2lBUei7Fc6uH2hnjpgzPk+N5NedfP87Z6rZahWKq7HbSsVf93nUg1vqttj1cVh+/S7tePyK5R1FVz5Tnyr0gbqACF5CFTB1emyo8cvoLs1XTX/zQJ/qXSryQ9Y2o1KxV6V2DdKR1KV8LWd9QfWrl3qYOj0opHZ1mupA1alKzFttdXrCN9NS1aXWj0uVWV958vu/7+WyovLzpq+HyPU4d3rJted+sziVbs9/qj4naz7jb+XXbFmN/lttZl6Y2SI9be7xGpSGuSufbLM13rPa02M5BH0Mxyq89FyPP5drjKyIlct6s/1zyZuXfeVMRZYSnNTnHa9M6R3xmeVO+aZqxXklQ39a8ny1uc+vvlDj7qFJesdDKcVbX/kapn2tTd1fvv159bpHyDfZjIesbhhFxTBXPv8gU3j0+Z/2o349iWaVp4f0X6/euUbntrV+v0bb7ft5snF69ve/SYNvrlq/dX02/i8utapw6vEl5zcsEsFQtaLA0m/6U/8L7/9g//Y0Hq6bPnT5TDpbmTp+pmnfqGw/6L7z/j/1X/o//0pc2lS9USn8NvviDL0nV/dX/ltUv0/KdPnXllr6k4wdLUWU1vSBvtU/qAo6I7Qr/CDebXyqzPL3ZRUo/gqXmbWu+30rFhtaNaER38zsJlqLbHn2R1uDCK3TxGz2/1foNlovazkEfQ/0KlsoXgfVBROPPJLROab2qcmMGSw3qLu2nuO/tqj6Gqvdrq3Mjzj6qLiP8GdS2v9mNoNB3aVT5Pfrc6jX/Por6bo8KlhtuTxfnbLmsqKCmtK9qj/t2fu+iGxX7ty1S7fqtfkPb/i6tBKuNvidalV8pJ/r7ou54rFuP9ywBy01ienraHxmpZKOTpNnZWW3evLm2E6or577/Q73+xb/U8MYRbfh/Dmho7Zqq+TPbPypJ2njs21XT58+c1Sv/227Nzcxq3Rc+G5kQYmBcW6lUNhhaYHY4zGsxctJK2IYKhW7fr9FLwZvTXctv/h6RRdn2VmJuG5Yt104Fz+X04gBwbaVSrqyWz+chjp5+NljWnHRCthEvAx+ApWNBnlkKnjuqpAqvDZSaGVq7RmvvDn6kztz3zb6nEm+LYYXepcIPKYDOeK5bl8GtU9VJB9Atw8op66UXJOvb0lWbJbP6JcQXAiedUNqrTjABYHlYkGDpjcnvNk0V3srqP/x9rXy3ofkzZxcmlTjKb7dfDBcIQdrgIP1yvBUWT9tbaXvbsOTVZSEsvlPK6slFVvH9SINOOrOsGLIKC5PNcOmKzgDp+xdOb3mQwGQpjWgAEFffh+HNzczqpcynJUlXPvjVqhfQhp37/g8lBYFRlPOPF/TqPZaG1q7Rhr8+0LAcAFjcHKWr3k9lNnznVFulpoO7+EaWYUAAAPTKin5XcLaY9nv1Hb/XNMBZ9a/f17SclTentPqOD+jcw3+v1794ny6/d19P2wkACyO4C9/zUvO+el8qAAAXtr4Ow3vzH36iN77/d8XnjtINl5ubmdXLmU/r5cynmz6TdMl/+BMNrV2j80+4Ov94oR9NBgAAAABJfQ6WTt93vyTp4vEPtxw2N3/mrObPnJV/unGwNLR2jVaPf1iSdOq+b/auoQAAAABQo2/B0rnv/7Cc1GHtJzNNlx3eOKIrc1/VyHcfaBlUrTHv1PDGEb39zC9I9gAAAACgb/oSLNWmCo9jeONIrJTiQ2vX6NIvfEZS8DzUokolruAh64FkYXPSSqRskVStYmCfxUJybaUSCSUSKS2KTeU4BAAAy0hfEjz888//qdyrNDczq9PfzPW8jqG1azR/5qze/vk/aeXNqZ6XLxWzS2kZvWwWy4yjdCqrZN5XgUMUAACg5/oSLL1j878oB0qlbHj9MLxxRCs2/4u+lb8gnLQStqEC72eIb7nvs7jb53ryZIpX6gAAAPRHX4KlobVrdPm9tt74/t/1o/hyHRf97rZYQ/c6RSpeAAAA4AI2PT3t//rXv676m56e9i8EeVO+zHzVtELW8GVk/ULp/6PmS5W/mvl5U76RLYTX8LNGaHmZfj60bKOyqusx/Koia+cbWb+QN8vt7l7QZiNbqK8nYrmobSvNM/OlZSrb0GzbSvuvUb3N9lmtus8ib/pS9bRGbYk6NvwW+7hV26PrrK4n7vbVlRGqp/kxWvpcIsqraUfb29Lz4xAAAGCw+po6fLEzTVPyvNDD6K4mHVemFT38ybVTSmWTyvu+fN+X7xeU9dJKpJ2Gdbi2LeVKy/vKm47SxeXNvB88D2VkVfD98rNRrp1SyjGDab4vP59UNpWWUy6zph05KdOkDZ1ysylllKu0PZlVKvTwfrNtK/HKyxRkGa23rb7egrLKKlPMXtBon7XkpJVIe8oWfBUso9j+xm2pPzYkx3FkmONNh8Y1a3u5zibHUNztM6yC/EJWRvEFp35xyF4nx2jPtqVPxyEAAMCgXNDBkkxTputosnz1PynHNWVGXp86srNStpBXZbYhK5eV4dgNM5EZVl5W6Oo66iI8sp5cKGAzLWUNR47ToB2GpVy2D0/vmPlyYBH8M1+1v2Jtm2mFlmm1bVH1Gho3DbnOZOcZ1sqBUiF+W2qPDTlyHEPmeIv93LTtnR1DbWxob8tvd1v6dRwCAAAMyIUdLMmUabpyilfE7qQj1zQVGSu5njwllay9FjTGZRquXK9xLa6dUiKRCP5a3Xl3PXlylU0lKuskUsq6kue5DdthJJMtttVROhEus7o3J4ph1JaZlFGzra22LRluaKtta1Bv621rwslEBEpx2lJ9bMhx5FQFftGatr2LYyiWHpffybZ09VkBAAAsMhd4sBT0hpTulnuuG/SO9EwQoKRcqzxULd6wMTM0jKryV2h1pd5WmfnooLApT26op2XxbFtjriRDjQKF5m0JHxuO4/T42AAAAMBid8EHS5XhVo4cp9EQPElGUkl58mqHMrmTclxDdZ0wUtAbIVP5UBDhei1u7zeqp0r9fMdZgGdFiqmqTVN93LbeMsycCoWsvNoX1MZpi2nKdF15anFsxG5MB8dQn8r3ahby3E4+lAEdhwAAAAuEYKk03Cpjy2k0BK+4nJVVTTICV3YmK7fR8KykISN8QenaymQjLkpdV5UwI2hPbdIDJ138t2HJMl1lM5VEC3LSsr3e98y42ZQqI+tK21rcR3G3rUqLbWurceF91oJhqVDIStlUKGCK0xZTpunISTstjo242jiG2tm+tsovPnuUtSvLOGm1nZdhAY9DAACAQSFYUnG4lStlW7zd07AKKmS90LM/KTlmofHwM8NSLqvKczEZKVe7bDGpQDr0zI+ZL2aWCz1j5JiVYXNmPshMlirNd0wVrN4/K2Jk8zLs0PM8yXxlW+NsW4RW2xZLxD5rvTGVgClRzOgXpy2mafZ0CF6sY6iT7WujfMMqVG+3Y6rQQWKGhToOAQAABiUxPT3tj4yMVE2cnZ3V5s2bB9QkDJ4rOxVcZPfrWaIlw7WVSrmyOnrGCwAAAEsZPUtAE00zJAIAAGBZWzHoBgCLV+ldQoRKAAAAFyJ6loAITjp4F5WXzbV8txIAAACWJ55ZAgAAAIAI9CwBAAAAQASCJQAAAACIQLAEAAAAABEIlgAAAAAgAsESAAAAAETgPUsAAACL2Pnz5/WrX/1K586d09zc3KCbg2Xq0ksv1TXXXKOVK1dWTe/X8bdY6muFYAkAAGCROn/+vKanp3XFFVfone98p4aGGBSE3pufn9err76q6elp3XjjjeWAol/H32KpLw7OOAAAgEXq+eef11VXXaWRkRECJfTN0NCQrrjiCm3YsEG/+tWvytP7dfwtlvpirduzVgAAAKCnXn/9dV122WWDbgYuEFdccYXOnTtX/ne/j79B1xcHwRIAAMAiNjw8POgm4AIxPDxc95xQP4+/xVBfKwRLAAAAABCBYAkAAAAAIhAsAQAAoAlP+7YOKzMpydunrcMZTS5o9THqnMxoeOs+efUzlFno9l7Azn3vhzr3vR/2tY7Tb87p4E9m9EffdLXt3se17d7H9e/+29Pa97f/S8+//lbP6yNYAgAAQFEoMGrLpDLDW7WvPlopFttNwIOlYG5mVm/8zbd19qsP6PyT/fkUv/vUq9p5v6uf/uq0PvbuK8vTP3zTev30udP6xLee1rcen+1pnQRLAAAAWGImlRke1nDpLzMpeba2hqbFCfi8fVvLAZq3b2ulvCblTGaGCeoinN5/n1Z9cLsu+uiH9MY3Hux5+Q8+8ZLsv/2ldr1vo742vlkfv3mkPO/jN4/ov3/S0MfefaW+/KPn9N2nXu1ZvQRLAAAA6AFP9tb6YGN4eFjDW+0eBxfjys3Naa7JX268RRGTGW11TJ04sVfJcrG5mnJyUk1wNJ6bUy5pK9OwG+3Cc+57P9Tc7Ctae3daF49/WHOzr/S0d+n519/SwUdf0K73bdTHQkFSrV23Xq0/e/+1+tKxZ3X6rfay3jVCsAQAAIAeSMo60SB4OWFVApJmPLe9oMrbV9WbVO5lqlLqhQoPA/S0z/Zk5fa2aNe4cnMnZMnW1lC547mckrbNs1BFb/zNt3XxJz6quZlZvX3yl7rkC5/R6S/+pebPnO1J+X/9kxmtXTWsXbde3XLZj988os1XrO7ZcDyCJQAAABR5cj3J87xQILJV9gJ0okw6k5I8eXHr8vZp61ZXVk1gdsKwawKmUi9UTuXOpklbtkyNx4rgktprjUuTTig4Gpc5Pik7Ru+St29r7GfA2ll2sThzf17DIxu0+kO/r7P3O3rz+3+nle9Kanhkg96Y/G5P6ph++c2qZ5RKjn/uZh3/3M1107dvulTfe+q1ntRNsAQAAIBAMSDwXE9K7tWJuTnNzZ2QFa9bqItheJNyJsdlWZIzGbVk5RmlXgQTk86kkuZ4vN4uSRo3NV4TyI2b48F+aiG594RMJ17b21l2MZibmdWb3/6eLtnzWUlSYu3FSqy9WJJ08Z98TG9++3s96V2afukNfflHz5Wz32279/G6ZcLzvvyj5/T8qd5kxiNYAgAAgIKhaZMaz+U0Pmk3zmwXqfUzRFU9OzUmMxl5lqW9ey0l7UxE3ZXyy88iJffqxAlDdk1gttW1NNfygSUpmYwdKjUowFDS82INGxzPBW2PEwi1s+ygnb3f0cp/9S81vDF4jiixdo0Sa9dIkla+K6lVH9yuM/fdP8gmdm3FoBsAAACARWDSli1LJ8bHJcvWVntSe2MEHd3Xm1HGs3Qil5SUVC7naDizT+MnWj1PpGLv194mC4wrN1e7DW0M9SuvEgRFRpur1bUmN6c5FTPq2VZ1cokulh2EuZlZ/fOTni77slWe9o4brq9aZs3dab368c/o/JOeVr6r89ZfvW6lPvbuK6sy4NUKD8f71uOz+i7D8AAAANAT3j5tzVQSHiT3WhqfzMTo1ahJ4R3rL5RoYTKj4UxNooXxnHJJW1vbSM/dKO13z1J8e668ZNxnnBqbzATtcsw5zbUIftpZdhBO779PF3/io+VepShDa9f0JJX4h2+6XMdOvl43vdGQvNwTL+nGK1d3VWcJwRIAAMAFzdO+jK1k7oT2ViIW5U5Y8jItXiTbcPhdTuNN50nSpDKZSY1X1VsstZie244xBG0yMxykAI+o64TpRLwMN6lkspjEIpZiO62agMVz5SWTsYKYqsCnRVrzdpYdlFKq8NUf+v2q6fOnzmj+1JmqaWvvTmtu9hW99f8d77i+j988op+/fC5WhruDP5nRqbfm9L+/76qO6wtjGB4AAMAFLam9JyLeSZPcq2Cyp319qTcIphrOzc0FQVXTmGZSzmRSVoOel+TenCxnq5xJaTwUdIyb48o4ntQq1PH2aetWW7JO6ERN0DLpTCppWNHrVRWxVbZxQnO51mFVO8sOUilVeK3a4KmklEp81e9u66i+S1YN68/ef632PfK/dOb8vHa9b2Pkcg8+8ZIOPvqCPv/+a3XNulUd1VWLYAkAAABL1LjM8YwyDZ5x8vZlZHvj9b0z46bGM7b2eePVvVqTGQ0PV5efm5uLSExRzN4XI6hJ7j2hEzG3pp1lB2l4ZINO//lXdfrPvxp7nZW/fVNXdd6Z3KDTb83pr38yo+96rygTSiX+rcdndezk65p++Zys239TH05u6KquMIIlAAAALFnjuTnNTWY0XB3llGZqri7BgySNy6pJYpHce0JNc0WEBNn7TjTM7rfcXXZvf/oaW/n4zSPavulSHXz0haoEDg8+8ZLuvOly/fmO39IlqyKOgy4QLAEAAKCJ8DC90tC8VqKy0HVafYw6x3NqMqKvQbE5WVu3auu+E/LsrbHXy40rlL0PC+2adatk/ZvrWy/YIwRLAAAAuAAFQeBeSdrbXqTVZlyGJYxseAAAAAAQgWAJAABgkRoeHtZcu+PLgA7VHmv9Pv4GXV8cBEsAAACL1OrVq/Xyyy8Puhm4QLz22mu69NJLy//u9/E36PriIFgCAABYpH7jN35Dr7zyil5++WV6mNA3c3NzevHFFzU7O6trrrmmPL1fx99iqS+OxPT0tD8yMlI1cXZ2Vps3b+5ZAwEAANCZ8+fP6+mnn9aLL74o3/cH3RwsQytWrNDll1+um266SStXrqya14/jbzHV1wrBEgAAAABEYBgeAAAAAEQgWAIAAACACARLAAAAABCBYAkAAAAAIhAsAQAAAEAEgiUAAAAAiECwBAAAAAARCJYAAAAAIALBEgAAAABEIFjCouKkE0rZ7qCbAQAAABAsuXZKiUSi+i9lazlfrjvphBJpp+tlFsKCt8NJ1x8PiYQSiZTqYzhH6cjpAAAAWA4u+GBJkmTm5ft+5a9gyRh0mxaSk172AWJstceC78vPm5Jharx8ULiyUwklEmkNPpwEAABAv6wYdAOw8My8L78HyyyEwbfDlW07Mq18OYB27Yyyybz8gpRO2ANtHQAAAPqHnqWmgh6EtFPqSUjJdqOmFZeuHdJXNXys8XpRdaZst7q8iJ6f5vVJwTCxyvzSbNdOlZctD3Nzs0qFyggvE7e+0vNGDdvt2kq1OWytth0t64hsa6jOdtvg2MoqK8usTDKsQtDbBAAAgGWNYCkGz7alnC/fL8gyoqe5dkqpbFL58vCtgrJeui6giCoriptNKaNceShYPplVKhQUtK7PUTqRlvKV4WSmVx9UmPnSMLOsCqUhZ1Htibl91e0uKKusMj1+qKdVHa6dUsoxg+3xffn5pLKpTobMlXqVLrBhmQAAAJBEsBSofai/tofGtOoDm6ppjuyslC3kVQk1DFm5rAzHru7FiCoriplXIbSgmc/LdB1Nuu3UZ8hIhqvu9KK/ne0Lt9vQuGnIdSaDIM2wVGgRJMbSrI5SW3OhbTUtZQ1HjtNmG9xJOa4pk04kAACACxLBklT/UH9N70oyWX9lXTXN9eQpqbrFjHGZhivXa15WFCMc5QRryiiVFas+U1ZWyqZ6kE2uje2rbbeRrN2O7jWtw/XkyQ22OzQML+tKntdeD5c76cg1TRErAQAAXJgIlpYMT26bo9kMqxAM4VO6wTNNy5UZGi5Y+Su01aXlatJxZdKtBAAAcMEiWOoFI6mkPNV1XLiTctzqoXAdcz15Kg4Ja7M+M+/LL0QMmYtrIbavVxq1tV0MwQMAALjgESz1RGnIWziJgCs7k5Ub9xmlGm42pUpHUKms0pCwOPU5susio4ihdOXVXXkNZvVs+zrIhtc+U6bp1iV0cNLFf8dsA0PwAAAAwHuWpGKCh/AEQ9lCe4kIDKugglJKhQoysgX5HWYzMLJ5GXZCiXRxgpmvepaqdX2mxpVSIlGKCoJtMqX6l8+alrJGSulEoq6efm1fP5l5X/l0Itie8LQ2yvBcN+K5MQAAAFxIEtPT0/7IyEjVxNnZWW3evHlATbrQubJTKTlmoc1nbAAAAAD0EsPwAAAAACACwRIAAAAARCBYAgAAAIAIJHhYdAxZBV/WoJsBAAAAXODoWQIAAACACARLAAAAABCBYAkAAAAAIhAsAQAAAEAEgiUAAAAAiECwBAAAAAARCJYAAAAAIALBEgAAAABEIFgCAAAAgAgESwAAAAAQgWAJAAAAACIQLAEAAABABIIlAAAAAIhAsAQAAAAAEQiWAAAAACACwRIAAAAARCBYAgAAAIAIBEsAAAAAEIFgCQAAAAAiECwBAAAAQASCJQAAAACIQLAEAAAAABEIlgAAAAAgAsESAAAAAEQgWAIAAACACARLAAAAABCBYAkAAAAAIvz/atOgzkHXLM4AAAAASUVORK5CYII=)
AUTOMATIC은 자식 테이블의 인스턴스 입력을 항상 허용하며, 대응되는 부모 테이블에 인스턴스가 없다면 이를 자동으로 생성하여 무결성을 보장합니다.
SET NULL은 자식 테이블의 인스턴스 입력을 항상 허용하며, 대응되는 부모 테이블에 인스턴스가 없다면 외래키를 NULL값으로 입력하여 무결성을 보장합니다. 이때 NOT NULL 제약조건이 설정되면 안됩니다.
SET DEFAULT도 자식 테이블의 인스턴스 입력을 항상 허용하며, 대응되는 부모 테이블에 인스턴스가 없다면 외래키를 지정된 기본값으로 입력합니다. 이때 외래키가 설정되면 안됩니다.
삭제/수정 참조 무결성 규칙에는 RESTRICT, CASCADE, SET NULL, SET DEFAULT가 있습니다.
RESTRICT는 대응되는 자식 테이블의 인스턴스가 없는 경우에만 부모 테이블의 인스턴스 삭제/수정을 허용하여 무결성을 보장합니다.
CASCADE는 부모 테이블의 인스턴스 삭제/수정을 항상 허용하고, 대응되는 자식 테이블의 인스턴스를 자동으로 삭제/수정하여 무결성을 보장합니다.
SET NULL은 부모 테이블의 인스턴스 삭제/수정을 항상 허용하고, 대응되는 자식 테이블의 인스턴스의 외래키를 NULL값으로 수정하여 무결성을 보장합니다.
SET DEFAULT는 부모 테이블의 인스턴스 삭제/수정을 항상 허용하고, 대응되는 자식 테이블의 인스턴스의 외래키를 기본값으로 수정하여 무결성을 보장합니다.
외래키를 설정하면 기본적으로 RESTRICT가 적용되어 부모 테이블의 인스턴스 삭제/수정에 제약이 생깁니다. 만약 아래 쿼리처럼 document_idx가 1인 게시글에 댓글이 있을 때 게시글을 삭제한다면 참조 무결성 위반이 되어 오류를 발생시킵니다.
참조 무결성 제약 조건 위반
INSERT INTO BOARD VALUES (1, '제목1', '내용1'); INSERT INTO COMMENTS VALUES (1, 1, '댓글1'); DELETE BOARD WHERE DOCUMENT_IDX = 1; |
참조 무결성 제약 조건 위반으로 인한 오류 발생 ![](data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/UAAADnCAYAAABfTXb0AAAgAElEQVR4nOzdfZAc530n9m8vIIKv4JD0kJTImHumLay6+7ywxEJRTuVmUy6dL3eCADh4elPlhAulDpQN++p0yVYMuCrqbqZKYKqQ2IqdjUVeWVhe3qafTRYruO6sUvlqx/4jDCLaWLO7tZBFa1ESRZBTEofgKygCnT+6e6Z7pnumZ3Zmdwf4fqqmyJ3pl6effkH/+vk9TyuNRiPACN1+++19Tb9nz56+pn/11atdf3/kkb09l3Ht2rW+10tERERERES03Sa2uwBERERERERENBgG9URERERERERjikE9ERERERER0ZhiUE9EREREREQ0plJB/V+tnsePf+AP/DcRERERERERbZ1UUP+99e/ilcuvDvw3EREREREREW0dha+04yvtiIiIiIiIaDyxTz0RERERERHRmGJQT0RERERERDSmGNQTERERERERjSkG9URERERERERjikE9ERERERER0ZhiUE9EREREREQ0phjUExEREREREY0pBvVERDcr34AiJQAJwzYgt7s8Y0JKBYYPhPWmw65vd4mIiIiI8jGoJyKKSQOKkR36ehIwdEAxtrhMvgHFVqDkBJdSKtHv6U8YlPYiYWTM2/rkB7Seb8NYUKKHBoOXf2R6rneTDzrqNvQ+6wwYbr1JQ4Fue4NuAREREd0kdm93AXYi31CQe78lHJimjwXdQnifpWHGdVHRwp/rto4FK7rJ0iyccE2UAcCTkLMGfC+cR7VMPCgNeMLBCVN0X2diWfW86TQNqlmFEFFBpAE7JziJqU4AIbpOkjLUejE9LPRTPk9CztrwvXgZAqLqQNWKlx8APFuHbmXdBGsQThWOaFug58G2Z2HJ1nqtqgMzMZmtK0gvUsANHCSXlLteTcBxHbR2g4ShZAUaOeXrpuMYiPeJhFQMJGM+1XEAI/1d+z7MXmY8f/JY8lDTdax6nb+ljgMIqELCL3Dcl5uL7n4ebY4Hw5AQjtP+NfRZQAjANNH9PB2FsgYNEh5UqOXOn4UIEABhkCmB6gmzdewVCuwFHDN5DMY82AuznZPXbehSQmgmzBkB2Sum7FH+kRnleus29AUJcSKA277sug19QQdOuDDLbd8Pud6EacHWbcjM/UdERES3CrbUb5qH1VkbXRugPBsLehyIhPP4loFV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S/J7OPOFx3HPnl1DD+q3S78PE4iIiIiIiIi2W9eB8r7zw7fxmUfvxks/egf37NnV/P4zj96N2vcb+Lz2wMgLuFXeeuut7S4CERERERERUV+69qn/6x+9jY/fuwef2Hsb5r/5ffzX3/w+7tmzCx+/dw++86O3t6qMRERERERERJSh0EB5H997GwIAChR8fO9tAF/lTkRERERERLTtuqbff/rRe/DaW9fwZ/5PMPN4Cffcvgv/x9+8gbc/+AhPPHrPVpWRiIiIiIiIiDJ0DepnfrGE+W++gqc/+wl8Xm31n/+S/B4O/vrPjbxwRERERERERJSva1B/z55dHSPfA8j87laxsbGB9fV17N27F7/6q7+63cUhIiIiIiKiW1huUP/EH7y0leXY8d5//31cvHgRP/nJTwAAP/3pT7e5RERERERERHSrywzqu713/la0sbGB7373u7h+/fp2F4WIiIiIiIioqWv6PQF//dd/jR//+MfbXQwiIiIiIiKiDoVeaXcrY0BPREREREREOxWD+h4+8YlPbHcRiIiIiIiIiDIxqO/h05/+NHRdx65du7a7KEREREREREQpDOoLmJycxMzMDB544IHtLgoRERERERFRE4P6gu644w589rOfha7r2L17N+6///7tLhIRERERERHd4pRGoxGMcgW33377KBc/NB988MF2F4GIiIiIiIioL2ypJyIiIiIiIhpTDOqJiIiIiIiIxhSDeiIiIiIiIqIxxaCeiIiIiIiIaEwxqCciIiIiIiIaU7tfeeWV7S4DEREREREREQ1g5K+0IyIiIiIiIqLR2L3dBSAiIiIiGlff+ru38a3vX8Wv/+Je/Pov3dP3/P/Vv3sVa6+9X3j66Y/fgf/xP3mk7/UQ0c2LfeqJiIiIiPr0rb97G7/pXMaLP3oPe3ZN4H9bexP/WfUyvvV3b/e1nP/mP3oI+kN3YJei9Jz2jt0TePLRuwYtMhHdpJh+T0RERERU0Lf+7m288Dc/xSfLtwMA/vIH6SD+kb234cPrAb746fv7arm/8s5HOF17Hd994wNcD9K353fsnsBTv3I/jH9Y2vwGENFNh0E9EREREVEBrVR5BUCvW2gFn3pwD/7484/2tY44uHdf/wB37FYYzBNRTwzqiYiIiIiIiMYUX2lHRERERERENKZ2v/zyy9tdBiro8OHD210EIiIiIiIi2kF2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HP78Pjz3s1M4FpiH/sXF07jn4H48+Se/i727Y66DHPoO6nfNTGP/0zrWX351oAykpXHZl2/J1GSfiIiIiIjI4zXP98yj/c+eJBixwXQ/yWdIUzLgZMpXcLcG1EoFlYUGbL2SeTtDAhRbRSNDLT0V79rLd0P94xvSV+xT30E94NWi700ZIG/ULL2Msub1XK9OTACihmZThRhZBgCQa3Brrep8C3q5DEt1UZMj+7PU9npmdQK62IQBpbOvQBpx+YCooakO5XCJiIiIiGjb8gor5gFgPl+JQM7yAxojA09pt9WJahNuU4MIGTXXhRsK6AXvM9eF6zah2VVMVM3caVhaGQqMzn6gQQmMxteVlgEofaRDREREREREFLTtg/p4JnQN0Jo1dCrhRaiGBtHU84+OL9fQVFv18iIkWYRl1v2R7WPSElUYmhi3JyIiIiKisVYqleDkbVdO1KfotTbs62/U6cXZmUG9ZcOGACEaV4sSZNFClpkiQptFpoUQhcD/E9IKrUNEREREtE1MTU3hzJkzo84G7RAfffQR9u3b1/7/sK+/UacXZ2cG9URERERENBTXX389zp49izNnzrDGnobGcRx88MEHWF5exrXXXtv+fFjX31ZJL85AA+WNLVGAABO2BYRHs6vDtETIgUp0O7KSbeVtmw8AdldapmlGEiciIiIiGn+Tk5O46aab8Pbbb+PNN9+E67qjzhJtQ5dccgn279+PgwcPYnJysv35sK6/rZJe7LqFpDh2ZKiajnK5CsFt9XW3oCsaLLmGpgi0+sZrmg5T9dcxq6iaAPLMdy+qUGUNVUWH1BoR36xCtxnQExEREdH2NDk5iUqlgkol+7RrREXZ7Otv1Nf7Dg3qvVHxmyijPDHR+UxrwlXF0Do1a8KbCg/wBsTTbJRzVtbLtSa0chnlCa29H1c1MaEPehRERERERES0k024bA9DRERERERENJY4UB4RERERERHRmGJQT0RERERERDSmGNQTERERERERjSkG9URERERERERjikE9ERERERER0ZhiUE9EREREREQ0phjUExEREREREY0pBvVEREREREREY4pBPREREREREdGYYlBPRERERERENKYY1BMRERERERGNKQb1RERERERERGOKQT0RERERERHRmGJQT0RERERERDSmGNQTERERERERjSkG9URERERERERjikE9ERERERER0ZhiUE9EREREREQ0phjUExEREREREY0pBvVEREREREREY4pBPREREREREdGYYlBPRERERERENKYY1BMRERERERGNKQb1RERERERERGPq/wH90pnBqKCTPAAAAABJRU5ErkJggg==)
SQL에서는 ON DELETE 또는 ON UPDATE 키워드를 통해 부모 테이블의 인스턴스 삭제/수정에 제약을 줄 수 있습니다.
ON DELETE CASCADE 제약조건을 적용한 후 document_idx가 1인 게시글을 삭제한다면 해당 게시글과 연관된 모든 댓글이 자동으로 삭제됩니다.
아래 쿼리를 순차적으로 실행하세요.
ON DELETE CASCADE
DROP TABLE COMMENTS;
CREATE TABLE COMMENTS ( COMMENT_IDX NUMBER PRIMARY KEY , DOCUMENT_IDX NUMBER NOT NULL REFERENCES BOARD(DOCUMENT_IDX) ON DELETE CASCADE , CONTENTS CLOB );
INSERT INTO COMMENTS VALUES (1, 1, '댓글1'); DELETE BOARD WHERE DOCUMENT_IDX = 1;
SELECT * FROM COMMENTS; |
게시글을 삭제할 때 댓글이 함께 삭제되었기 때문에 COMMENTS 테이블에는 인스턴스가 없는 것을 확인할 수 있습니다.
COMMENTS 테이블 ![](data:image/png;base64,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)
오라클에서는 ON UPDATE 키워드를 지원하지 않습니다. SQL Server에서 아래와 같이 테이블을 생성한 후 게시글의 document_idx를 수정한 후 COMMENTS 테이블을 조회하면 document_idx가 자동으로 수정된 것을 확인할 수 있습니다.
ON UPDATE CASCADE
CREATE TABLE BOARD ( DOCUMENT_IDX INT PRIMARY KEY , TITLE NVARCHAR(50) NOT NULL , CONTENTS TEXT );
CREATE TABLE COMMENTS ( COMMENT_IDX INT PRIMARY KEY , DOCUMENT_IDX INT NOT NULL REFERENCES BOARD(DOCUMENT_IDX) ON DELETE CASCADE ON UPDATE CASCADE , CONTENTS TEXT );
INSERT INTO BOARD VALUES (1, '제목1', '내용1'); INSERT INTO COMMENTS VALUES (1, 1, '댓글1'); UPDATE BOARD SET DOCUMENT_IDX = 2 WHERE DOCUMENT_IDX = 1;
SELECT * FROM COMMENTS; |
COMMENTS 테이블 ![](data:image/png;base64,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)
CASCADE 대신에 SET NULL을 설정하면 부모 테이블의 삭제 또는 수정시 자식 테이블의 외래키는 NULL값으로 설정됩니다. 이때 주의할 것은 NOT NULL 제약조건을 설정하면 안됩니다.
SET DEFAULT의 경우 DEFAULT 제약 조건을 설정해야하며, 오라클은 SET DEFAULT를 지원하지 않습니다.
CHECK는 입력할 수 있는 값의 범위를 제한하는 제약조건 입니다.
CHECK 제약조건
DROP TABLE COMMENTS;
CREATE TABLE COMMENTS ( COMMENT_IDX NUMBER PRIMARY KEY , DOCUMENT_IDX NUMBER NOT NULL REFERENCES BOARD(DOCUMENT_IDX) ON DELETE CASCADE , CONTENTS CLOB CHECK (LENGTH(CONTENTS) > 10) ); |
COMMENTS의 CONTENTS 컬럼은 10글자 이상이어야 합니다. 만약 10글자 미만이라면 제약조건 위반으로 오류를 발생시킵니다.
제약조건 위반으로 인한 오류 발생 ![](data:image/png;base64,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)
2) ALTER
ALTER 명령어는 컬림이나 제약조건을 추가/삭제하기 위한 명령이며, 문법은 아래와 같습니다.
컬럼 추가(ADD)
ALTER TABLE 테이블명 ADD 컬럼명 데이터유형 [기본값] [NOT NULL]; |
컬럼 수정(MODIFY) ALTER TABLE 테이블명 MODIFY 컬럼명 데이터유형 [기본값] [NOT NULL]; |
컬럼 삭제(DROP) ALTER TABLE 테이블명 DROP COLUMN 컬럼명; |
컬럼명 수정(RENAME) ALTER TABLE 테이블명 RENAME COLUMN 기존_컬럼명 TO 새로운_컬럼명; |
제약조건 삭제(DROP CONSTRAINT) ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명; |
제약조건 추가(ADD CONSTRAINT) ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건; |
3) RENAME
RENAME 명령어는 테이블 등 데이터베이스 객체의 이름을 변경하는 명령어입니다.
테이블 이름 변경
RENAME 기존_테이블명 TO 새로운_테이블명; |
SQL Server의 경우 RENAME 대신에 SP_RENAME을 사용합니다.
SQL Server 테이블 이름 변경 SP_RENAME 기존_테이블명, 새로운_테이블명; |
4) DROP
DROP 명령어는 테이블 등 데이터베이스 객체를 삭제하는 명령어 입니다.
테이블 삭제
만약 해당 테이블을 참조하는 다른 테이블이 있다면, 참조 무결성 제약을 제거해야만 테이블을 삭제할 수 있습니다. 오라클의 경우 CASCADE CONSTRAINT를 설정하면 해당 테이블을 참조하는 참조 무결성 제약을 함께 삭제할 수 있습니다.
참조 무결성 제약 삭제 DROP TABLE BOARD CASCADE CONSTRAINT; |
해당 쿼리를 실행한다면 COMMENTS 테이블에서 DOCUMENT_IDX의 외래키가 삭제됩니다.
5) TRUNCATE
TRUNCATE 명령어는 테이블에 저장된 모든 인스턴스를 삭제하는 명령어 입니다. 테이블 스키마까지 삭제하는 DROP 명령어와 달리 테이블 스키마는 남겨두고 테이블에 속하는 인스턴스만 제거하여 저장공간을 재사용할 수 있습니다.
테이블 초기화
DML의 DELETE와 유사하지만 ROLLBACK이 가능한 DELETE와 달리 TRUNCATE는 ROLLBACK이 불가능합니다.
|