목록Dev. Study Note/Database (ORACLE) (12)
Priv's Blog
1. 이상 현상 잘못 설계된 테이블로 삽입, 삭제, 수정 같은 데이터 조작을 하면 이상 현상이 일어난다. 이상 현상이란, 테이블에 투플을 삽입할 때, 부득이하게 NULL 값이 입력되거나, 삭제 시 연쇄 삭제 현상이 발생하거나, 수정 시 데이터 일관성이 훼손되는 현상을 의미한다. 위의 테이블은 필요한 정보를 검색할 때는 문제가 없지만, 튜플을 삭제, 삽입, 수정할 경우 문제가 발생한다. ● 삭제 이상 튜플 삭제 시, 같이 저장된 다른 정보까지 연쇄적으로 삭제되는 현상. 장미란 학생이 스포츠경영학 수업의 수강을 취소하여 테이블에서 튜플을 삭제해야 할 때, 위의 테이블 설정대로 튜플을 그냥 삭제해버리면 장미란 선수의 기본 정보도 통째로 삭제되어 버린다. 이는 튜플 삭제 시 같이 저장된 다른 정보까지 연쇄적으로..
1. 데이터 모델링의 개념 데이터 모델링은 건축에서 쓰이는 지반 설계와 같다. 건물이 아무리 튼튼해도 지반 설계가 잘못되면 위험하듯, SW 개발 역시 데이터 모델링을 잘못하면 프로젝트 전체가 위험에 빠질 수 있다. 데이터베이스에서 데이터 탐색에 10분 이상 걸린다거나, 데이터가 누락을 감지하지 못하는 등의 문제가 발생하면 SW의 신뢰도에도 문제가 발생하는 것과 다름없을 것이다. 데이터 모델링은 현실 세계의 복잡한 개념을 단순화하고 추상화시켜 데이터베이스화하는 과정이다. 그러므로 최종적으로 구축된 데이터베이스는 현실 세계의 대상이 되었던 개념과 일치해야 한다. 현실 세계에 있는 개념들을 데이터베이스로 구현하기 위해서는 먼저 정보를 모아 모델링을 해야 한다. 개념적 모델(ER 다이어그램)로 정보 모델링이 완..
1. 데이터베이스의 물리적 저장 컴퓨터 상에서 실제로 데이터가 저장되는 곳은 보조 기억 장치이다. HDD는 원형의 플레이트로 구성되어 있고, 이 플레이트는 논리적으로 트랙이 나뉘며, 그 트랙은 다시 몇 개의 섹터로 나뉜다. HDD에 저장된 데이터를 읽는 데 걸리는 시간은 (탐색 시간 + 회전 지연 시간+ 데이터 전송 시간)이다. 데이터베이스에서 사용하는 데이터는 물리적으로 HDD/SDD와 같은 보조 기억 장치에 저장되어 사용/관리된다. DBMS나 개발 도구 등은 OS 위에 올라가는 프로세서로서 존재한다. 오라클은 아래와 같은 주요 파일들로 구성되어 있다. 데이터 파일 운영체제 상에 물리적으로 존재한다. 사용자 데이터, 개체를 저장한다. 테이블, 인덱스로 구성된다. 온라인 리두 로그 데이터의 모든 변경사항..
1. 뷰 (View) 뷰는 1개 이상의 테이블을 합쳐서 만든 가상의 테이블이다. 뷰는 다음과 같은 장점들을 지니고 있다. 편리성, 재사용성: 자주 사용되는 복잡한 질의를 뷰로 미리 정의할 수 있다. (복잡한 질의를 간단히 작성) 보안성: 각 사용자별로 필요한 데이터만 선별하여 보여줄 수 있다. (중요한 질의의 경우 질의 내용을 암호화 가능) 독립성 제공: 미리 정의된 뷰를 일반 테이블처럼 사용할 수 있기 때문에 편리하다. 사용자가 필요한 정보만 요구에 맞게 가공하여 뷰로 만들어 쓸 수 있다. (원본 테이블 구조가 변해도 응용에 영향을 주지 않도록 하는 논리적 독립성을 제공) 뷰는 다음과 같은 특징을 지니고 있다. 원본 데이터 값에 따라 함께 변한다. 독립적인 인덱스 생성이 어렵다. 삽입/삭제/갱신 연산에..
1. 부속 질의(Sub query) 1개의 SQL 문 안에 다른 SQL 문이 중첩된 질의를 의미한다. 다른 테이블에서 가져온 데이터로 현재 테이블에 있는 정보를 찾거나 가공할 때 사용한다. 보통 데이터가 대량일 때 데이터를 모두 합쳐서 연산하는 JOIN보다는 필요한 데이터만 찾아서 공급해주는 부속 질의를 사용하는 것이 효율적인 경우가 많다. 질의는 크게 주 질의(Main Query)와 부속 질의(Sub Query)로 나눌 수 있다. 부속 질의의 종류는 다음과 같다. 1.2) 스칼라 부속 질의(Scalar Subquery) - SELECT 부속 질의 SELECT 절에서 사용되는 부속 질의이다. 부속 질의의 결과 값을 단일 행, 단일 열의 스칼라 값으로 반환한다. 스칼라 부속 질의는 원칙적으로 스칼라 값이 ..
1. 내장 함수 SQL에서는 함수의 개념을 사용한다. 수학의 함수처럼 특정 값, 열의 값을 입력받아 그 값을 계산하여 결과를 돌려준다. SQL의 함수는 DBMS가 제공하는 내장 함수(Built-In Function)와 사용자가 직접 만들어서 사용하는 사용자 정의 함수(User-Definded Function)로 나눠진다. SQL 내장 함수는 상수, 속성 이름을 입력 값으로 받아서 단일 값을 결과로 반환한다. 모든 내장 함수는 최초에 선언될 때 유효한 입력 값을 받아야 한다. 1.1) Dual 테이블 내장 함수를 테스트할 때 'Dual'이라는 테이블을 사용할 것이다. 이 테이블은 이전에 구현되어 있는 테이블이 아니라 결과 값을 보기 위해서 임시로 사용하는 테이블이다. 다른 테이블을 사용할 때와 마찬가지로 ..
1. INSERT 문 테이블에 새로운 튜플을 삽입할 때 사용한다. INSERT 문의 기본 문법은 다음과 같다. INSERT INTO 테이블이름[(속성리스트)] VALUES (값리스트); 경우에 따라 여러 개의 튜플을 한꺼번에 삽입할 수도 있다. 이를 대량 삽입(Bulk Insert)라고 부른다. 1.1) INSERT 문 예제 ● Book 테이블에 새로운 도서 ‘스포츠 의학’을 삽입하시오. '스포츠 의학'은 '한솔의학서적'에서 출간했으며, 가격은 90,000원이다. INSERT INTO Book(bookid, bookname, publisher, price) VALUES (11, '스포츠 의학', '한솔의학서적', 90000); ● Book 테이블에 새로운 도서 ‘스포츠 의학’을 삽입하시오. ‘스포츠 의학..
1. CREATE 문 테이블을 구성하고, 속성과 속성에 관한 제약을 정의하며, 기본 키 및 외래 키를 정의하는 명령어. PRIMARY KEY는 기본 키를 정할 때 사용하며, FOREIGN KEY는 외래 키를 정할 때 사용한다. ON UPDATE, ON DELETE는 외래 키 속성의 수정과 튜플 삭제 시 동작을 나타낸다. CREATE 문의 기본 문법은 아래와 같다. CREATE TABLE 테이블이름 ( { 속성이름 데이터타입 [NOT NULL | UNIQUE | DEFAULT 기본값 | CHECK 체크조건] } [PRIMARY KEY (속성이름(들))] { [FOREIGN KEY (속성이름) REFERENCES 테이블이름(속성이름)] [ON DELETE [CASCADE┃SET NULL] } ) 외래 키 제..