본문 바로가기

전체 글

(73)
02. 권한 관리 데이터베이스에 보관 및 관리되는 데이터는 대부분 데이터를 소유한 특정 단체 또는 기업에게 재산 이상의 가치를 가지는 경우가 많다. 따라서 데이터를 안전하게 보관하고 특정 데이터에 대해서 관련된 사용자만 데이터를 사용 및 관리할 수 있는 보안 장치가 필요하다. 사용자 이름과 패스워드를 통해 데이터베이스 접속을 허가하는 것이 그 첫 번째이다. 하지만 특정 사용자 정보를 통해 데이터베이스에 접속하는 것만으로 데이터베이스의 모든 데이터를 사용할 수 있다면 여전히 데이터 안전을 보장하기는 어려울 것이다. 따라서 데이터베이스는 접속 사용자에 따라 접근할 수 있는 데이터 영역과 권한을 지정해 줄 수 있다. 오라클에서는 권한을 시스템 권한(system privilege)과 객체 권한(object privilege)으로..
01. 사용자 관리 사용자란? 오라클 데이터베이스를 활용하여 새로운 서비스를 구축한다면 테이블을 비롯한 여러 객체가 필요할 것이다. 지금까지 SQL문을 공부했다면 SCOTT계정으로 접속해서 필요한 테이블과 객체를 생성하여 활용할 수도 있다. 하지만 SCOTT 계정은 오라클 데이터베이스를 공부해 본 사람이라면 대부분 비밀번호까지 알고 있는 계정이기 때문에 주요 데이터를 보관하고 관리하기에는 보안 위험이 있다. 따라서 SCOTT 계정 외에 오라클 데이터베이스에 접속할 수 있는 새로운 계정이 필요하다. 이렇게 오라클 데이터베이스에서는 데이터 베이스에 접속하여 데이터를 관리하는 계정을 사용자(USER)로 표현한다. - 사용자 관리가 필요한 이유 데이터를 활용한 서비스 규모가 크거나 작은 규모의 여러 서비스를 통합한 방식 등 실무에..
07. 기본값을 정하는 DEFAULT 제약 조건과는 별개로 특정 열에 저장할 값이 지정되지 않았을 경우 기본값을 DEFAULT키워드를 이용하면 된다. CREATE TABLE TABLE_DEFAULT ( LOGIN_ID VARCHAR2(20) CONSTRAINT TBLDFT_LGNID_PK PRIMARY KEY, LOGIN_PWD VARCHAR2(20) DEFAULT '1234', TEL VARCHAR2(20) ); >> 보통 비밀번호를 기본값으로 설정하지는 않지만 직급을 사원으로 고정한다거나 할 때 INSERT INTO TABLE_DEFAULT VALUES ('TEST_ID_1', NULL, '010-1234-4578'); INSERT INTO TABLE_DEFAULT (LOGIN_ID,TEL) VALUES ('TEST_ID_2','010-..
06. 데이터 형태와 범위를 정하는 CHECK CHECK 제약 조건은 열에 저장할 수 있는 값의 범위 또는 패턴을 정의할 때 사용한다. 예를 들어 시간을 저장할 열 데이터는 0에서 23까지의 숫자만 허용한다. CHECK 제약 조건 역시 다른 제약 조건과 마찬가지로 지정할 수 있다. CREATE TABLE TABLE_CHECK ( LOGIN_ID VARCHAR2(20) CONSTRAINT TBLCK_LGNID_PK PRIMARY KEY, LOGIN_PWD VARCHAR2(20) CONSTRAINT TBLCK_LGNPWD_CK CHECK( LENGTH(LOGIN_PWD) >3), TEL VARCHAR2(20) ); >> 비밀번호를 4글자 이상만 저장할 수 있도록 제한함. 단순 연산뿐만 아니라 함수 활용도 가능 INSERT INTO TABLE_CHECK ..
05. 다른 테이블과 관계를 맺는 FOREIGN KEY 외래키, 외부키로도 부르는 FOREIGN KEY는 서로 다른 테이블 간 관계를 정의하는데 사용하는 제약 조건이다. 특정 테이블에서 PK 제약 조건을 지정한 열을 다른 테이블의 특정 열에서 참조하겠다는 의미로 지정할 수 있다. EMP 테이블의DEPTNO열이 DEPT테이블의 DEPTNO를 참조하는 것이 그 예이다. SELECT CONSTRAINT_NAME, CONSTRAINT_TYPE, TABLE_NAME, R_CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE TABLE_NAME IN ('EMP','DEPT'); CONSTRAINT_TYPE 열 값이 R일 경우 외래키를 의미하며 R_CONSTRAINT_NAME의 PK_DEPT는 DEPT테이블의 PK = DEPTNO열을 참조한다는 ..
04. 유일하게 하나만 있는 값 PRIMARY KEY PRIMARY KEY 제약 조건은 UNIQUE와 NOT NULL의 제약 조건의 특성을 모두 가지는 제약 조건이다. 즉 데이터 중복을 허용하지 않고 NULL도 허용하지 않는다. NULL이 아닌 유일한 값을 가지므로 테이블의 각 행을 식별하는 데 사용한다. PRIMARY KEY 제약 조건은 테이블에 하나밖에 지정할 수 없고, 특정 열을 PK로 지정하면 해당 열에는 자동으로 인덱스가 만들어진다. 예민한 개인정보를 의미하는 데이터는 PK로 지정하지 않는다. 테이블을 생성하며 제약 조건 지정하기 CREATE TABLE TABLE_PK ( LOGIN_ID VARCHAR2(20) PRIMARY KEY, LOGIN_PWD VARCHAR2(20) NOT NULL, TEL VARCHAR2(20) ); PRIMARY KEY..
03. 중복되지 않는 값 UNIQUE UNIQUE 제약 조건은 열에 저장할 데이터의 중복을 허용하지 않을 때 사용한다. NULL은 값이 존재하지 않음을 의미하기 때문에 중복 대상에서는 제외된다. 즉 UNIQUE 제약 조건을 지정한 열에 NULL은 여러 개 존재할 수 있다. UNIQUE 지정 방법은 NOT NULL과 동일하다. 테이블을 생성하며 제약 조건 지정 UNIQUE 제약 조건 역시 CREATE문으로 테이블을 생성할 때 사용할 수 있다. CREATE TABLE TABLE_UNIQUE( LOGIN_ID VARCHAR2(20) UNIQUE, LOGIN_PWD VARCHAR2(20) NOT NULL, TEL VARCHAR2(20) ); 제약 조건 확인 USER_CONSTRAINTS 데이터 사전에서 CONSTRAINT_TYPE열 값이 U이면 U..
02. 빈값을 허락하지 않는 NOT NULL 테이블을 생성하며 제약 조건 지정 NOT NULL은 특정 열에 데이터의 중복 여부와는 상관없이 NULL의 저장을 허용하지 않는 제약 조건이다. 반드시 열에 값이 존재해야만 하는 경우에 지정한다. -- 테이블을 생성할 때 NOT NULL 설정하기 CREATE TABLE TABEL_NOTNULL ( LOGIN_ID VARCHAR2(20) NOT NULL, LOGIN_PWD VARCHAR2(20) NOT NULL, TEL VARCHAR2(20) ); -- 제약 조건이 NOT NULL인 열에 NULL 값 넣어보기 INSERT INTO TABLE_NOTNULL ( LOGIN_ID, LOGIN_PWD, TEL) VALUES ( 'TEST_ID_01' , NULL, '010-1234-5678'); >> NULL을 (..