파일 시스템에서 데이터에 대한 구조 무결성 규칙등 책임이 개별 응용프로그램에 있다.
파일 시스템은 다음과같은 문제점들을 가지고 있다.
데이터 종속성은 데이터를 사용하는 프로그램의 구조가 데이터 구조의 영향을 받는다는 것을 의미한다.
즉 파일의 구조와 프로그램에 데이터 구조를 일치시켜야한다. 이러한 점 때문에 프로그램의 개발과 유지보수를 어렵게한다.
데이터의 원래 내용이 본래 의도했던 데이터의 형식, 범위를 초과해서 존재할 수 있다. 파일 시스템에서는 데이터 무결성을 지켜야 할 책임이 프로그래머에게 있다. 프로그램 논리으로 해결
파일 시스템에서는 개별 부서나 응용 프로그램에서 필요로 하는 데이터 파일을 각각 만들어 사용하는 일이 많았다. 같은 내용의 데이터가 중복되는일이 많았다는 이야기 인데 이러한 중복이 발생하면 데이터의 변경 시 데이터가 불일치하는 문제가 발생한다.
데이터 중복에 책임은 프로그래머에게 있다.
파일 시스템에서 다수의 개발자가 협업하여 개발을 진행하면 데이터의 속성과 조건이 달라지는 문제가 발생한다.
이러한 문제는 제 3자의 이해 및 개발자들의 응용 프로그램간의 호환성에도 문제가 발생한다. 또한 위의 문제를 표준화하고 개발을 진행해도 응용프로그래머가 지키지 않을 수 있다.
파일 시스템은 말 그대로 파일로 데이터를 보관한다. 파일은 별도의 응용프로그램이 없어도 조회가 가능하기 때문에 보안상의 문제가 발생할 확률이 매우 높다.
위와같은 파일 시스템의 문제점을 보완하기 위해 데이터 베이스가 생겼다.
데이터에 대한 구조 무결성 규칙 보완등을 더 이상 프로그래머가 아닌 DBMS(Database Management System)가 책임을 지게 된다.
이용자, 응용프로그램 상관없이 데이터에 접근시 반드시 DBMS를 거쳐 접근해야한다.
DBMS는 특정 조건에 맞지 않는 데이터가 들어올 경우 처리를 거절한다.
데이터베이스의 중복은 DB 설계로 실현 가능하다.
데이터 베이스 내의 데이터는 조직 전체의 관점에서 관리한다.
동일 데이터가 여러 부서에서 사용되는 경우 이를 하나로 관리한다.
E.F.Codd의 용어 File 시스템의 용어 자주 사용되는 용어
릴레이션 파일 테이블
속성 필드 열
튜플 레코드 행
테이블의 모든 속성을 의미한다.
중복된 튜플이 발생하는것을 방지한다. 기본키 제역조건 설정으로 개체 무결성 실현한다. 즉 개체의 유일무의함을 증명하는 속성이다.
기본키를 제외한 나머지 속성에서 기본키처럼 개체의 유일무의를 증명 할 수 있는 속성이다. 기본키와 차이점을 기본키로 선택되었는지 유무이다.
복합키는 2개 이상의 후보키들을 조합하여 기본키의 역할을 하는 경우 복합키라고 부른다.
테이블간의 데이터의 일치와 무결성을 보증해주는 수단이다.
외래키는 테이블간의 데이터를 참조 (Join)할 때도 쓰이지만 무결성을 보증할때도 쓰이는데 만약 외래키가 있는 테이블과 다른 테이블을 참조할 때 외래키와 기본키의 값이 서로 맞는지 맞지 않는지로 데이터의 무결성을 유지 할 수 있다.
두 테이블간 외래키에 의한 참조관계가 있다면 불일치가 일어날 수 있다. 이러한 경우 DBMS는 다음과 같은 조치중 하나를 취한다.
삭제하려는 튜플의 속성중 다른 테이블에서 가지고 있는 튜플이 있다면 연산을 취소한다.
위와 같은 상황에서 연관되어있는 데이터를 모두 삭제처리한다.
삭제 연산 진행 후 참조되어있는 값을 null 값으로 대체한다.
외래키를 통해 두 테이블 간의 데이터 무결성을 유지하는 것을 참조 무결성 제약조건이라고 한다.
뷰는 하나의 테이블 혹은 여러 테이블에서 특정 사용자나 조직의 관점에서 데이터를 바라볼 수 있게 해주는 수단이다.
하나의 테이블에 대해 여러 부서에서 다른 관점을 제공한다
테이블에 급여와 같이 일반 사용자에게는 감춰양할 속성이 있을 때 그것을 제외하하고 뷰를 제공할 수 있다.
자주 사용하는 복잡한 질의문을 미리 뷰로 정의하여 두고 간편하게 쓰고자 할 때
대화식 SQL DBMS 회사에서 제공하는 유틸리티 프로그램 사용자가 직접 SQL문을 입력하고 실행 결과를 확인 하는 방식
내장 SQL : SQL문이 C, C#, Java와 같은 프로그램 안에 포함되어져서 사용되는 방식