데이터베이스

데이터베이스를 어떻게 설계하느냐에 따라서 DB의 성능은 크게 달라질 수 있다. 그 중에서도 데이터의 중복은 성능 저하와 이상(Anomaly)을 발생시키는 큰 결함이다. DB에서 이상 현상이란 잘못된 데이터베이스 설계로 인해 데이터를 삭제, 삽입, 갱신할 때 생기는 결함들을 말한다. 삭제 이상 : 하나의 데이터를 삭제하면 다른 데이터들또한 연쇄적으로 함께 삭제되는 현상 삽입 이상 : 일부의 데이터를 테이블에 삽입하기 위해 불필요한 정보(기본키)를 임시로 채워서 삽입해야 하는 현상 갱신 이상 : 하나의 컬럼값을 변경하기 위해 여러개의 튜플을 갱신해야 하는 현상 테이블에 여러 개의 중복되는 데이터가 있을 경우 한 데이터를 갱신하기 위해 여러 테이블을 갱신하면서 갱신 이상이 발생할 수 있다. 또 아주 많은 컬럼..
뷰 뷰는 다른 테이블로 유도된 가상의 테이블이다. 생성된 뷰는 일반 테이블처럼 쓸 수 있으나, 실제로 새로운 테이블이 생기는 것은 아니다. 뷰를 만들 때 데이터는 실제로 저장되지 않고 그 정의만 저장되며, 뷰가 사용될 때에만 가상의 테이블이 만들어진다. 즉 실제로는 뷰를 사용하는 SQL문에서 뷰 대신 뷰 정의에 해당하는 SQL문으로 대치된다. create view 뷰 이름 (컬럼 이름 리스트) as select * from 기존 테이블 where ... (with check option) select문이나 컬럼명을 작성하여 기존에 있던 테이블에서 특정 값들만 뽑아와 뷰를 만들 수 있다. 이때 컬럼명을 인자로 주지 않는다면 select문 자체가 하나의 뷰가 된다. with check option : 뷰를 ..
제약조건 제약조건(Constraint)이란 SQL에서 데이터 무결성을 위해 테이블의 데이터에 적용하는 일종의 규칙이다. 예를 들어 student 테이블이 있을 때 year 컬럼은 정수형이다. 그런데 만약 year 컬럼에 제약조건을 두지 않는다면 year는 0도 되고 111도 되고 999도 될 수 있을 것이다. 일반적으로 학년은 한 자리 숫자이고 0학년은 없다는 걸 생각하면 이런 수치는 비정상적이라고 볼 수 있다. 제약조건으로 year를 1에서 4까지의 숫자로 제한해둔다면, 비정상적인 데이터가 테이블에 삽입되는 것 자체를 예방해주므로 개발자 입장에선 매우 편리해진다. 제약조건은 테이블 생성시에 정의한다. -- 제약조건 설정 예시 create table STUDENT ( sno number(3) primar..
SQL은 SEQUEL에서 유래한 비절차적 데이터베이스 질의어이다. SQL은 데이터베이스에서 DDL, DML, DCL의 기능을 모두 포함하고 있다. DDL (데이터 정의 언어) : 테이블 생성과 같이 데이터를 정의하는 데에 사용되는 언어이다. DML (데이터 조작 언어) : 데이터의 조회, 추가, 삭제, 업데이트 등 데이터의 조작에 사용되는 언어이다. DCL (데이터 제어 언어) : 데이터베이스 접근 권한 관리, 회복, 병행 제어 등에 사용되는 언어이다. SQL에서 릴레이션은 테이블, 튜플은 행(row), 속성은 열(column)이라고도 한다. 엄밀히 말하면 완전히 같은 뜻을 가지진 않으나 단어를 혼용하여 사용하고 있다. SQL은 컬럼명을 제외하고 대소문자를 가리지 않으며, 모든 명령은 세미콜론(;)으로 ..
관계 대수 관계 대수란 릴레이션 조작을 위한 연산의 표현 방법 중 하나로, 원하는 결과를 얻기 위한 데이터 처리 과정을 기술하는 절차 언어이다. 이때 연산의 피연산자는 릴레이션이고 연산 결과 또한 릴레이션이라는 특징이 있다. 관계 대수 연산자들을 사용하면 릴레이션들로부터 새로운 릴레이션을 만들어 낼 수 있다. 연산자의 종류 일반 집합 연산자 순수 관계 연산자 합집합 (∪), 교집합 (∩), 차집합 (ㅡ), 카티션 프로덕트 (×) 실렉트 (σ), 프로젝트 (π), 조인 (⋈), 디비전 (÷) 일반 집합 연산자와 달리 순수 관계 연산자는 관계 데이터 모델에서 새로 추가된 연산자로, 릴레이션의 구조와 특징을 이용하여 데이터를 처리한다. 카티션 프로덕트 (×) 두 릴레이션 R, S에 속하는 튜플들 간의 모든 순..
과거의 파일 시스템에서 현재 DBMS의 사용으로 발전해나가면서 여러 종류의 데이터베이스 모델이 등장했다. DB 모델이란 DB 구조, 처리 과정 등에 대한 추상화된 개념이다. 어떤 DB 모델을 사용하느냐에 따라 DB의 종류가 달라지는데, DB 모델의 종류에는 계층형 모델, 네트워크형 모델, 관계형 모델, 객체관계형 모델 등이 있다. 여기서 주목할 부분은 관계형 모델이다. 관계형 데이터베이스, RDB 관계형 데이터베이스는 관계형 DB 모델을 사용하는 데이터베이스이다. RDB는 1970년대에 이르러 등장하였는데, RDB에서는 데이터 관리 언어인 질의어로 SQL을 사용하여 원하는 데이터의 조건과 특징만 있으면 그 데이터를 바로 찾을 수 있다. 즉 데이터 독립성을 제공한다. RDB의 가장 큰 특징은 각각의 데이터..
데이터베이스 데이터베이스, 즉 DB란 쉽게 말해 데이터의 집합이라고 할 수 있다. 여러 사람들에 의해 데이터가 공유되어야 할 때 이 공유 데이터를 통합하여 저장하는 데이터의 집합이 바로 DB이다. DB는 정보 시스템을 구성하는 핵심 요소이다. 이때 정보 시스템이란, 조직의 활동에 필요한 데이터를 수집, 조직하고 저장하여 데이터 처리를 통해 의사 결정에 유용한 정보를 생성하는 시스템을 일컫는다. 대부분의 웹사이트에서는 회원가입을 할 수 있다. 회원가입을 하면 나의 아이디와 패스워드, 그리고 개인정보는 해당 웹 서버 DB에 안전하게 보관된다. DB는 단순히 데이터를 저장하기만 하는 데에 그치지 않는다. 중요한 건 데이터 사이의 연관성이다. DB에서는 여러 데이터들을 연관성에 따라 구조화하고 통합하여 저장한다..
주니모
'데이터베이스' 태그의 글 목록