파일시스템은 별도의 구입비용이 들지 않는다는 장점
이 있지만 데이터 중복저장과, 응용프로그램이 데이터 파일에 종속적이고, 동시공유, 보안, 회복기능이 부족
합니다.
이러한 단점을 보완하여 나온 시스템이 데이터베이스 관리 시스템
입니다.
데이터베이스 관리 시스템은 응용 프로그램을 대신하여 데이터베이스에 존재하는 데이터의 검색, 삽입, 삭제, 수정을 가능
하게 하고, 모든 응용 프로그램이 데이터베이스를 공유
할 수 있게 합니다.
그렇지만 비용이 많이 들고, 백업과 회복 방법이 복잡하다는 단점
이 있습니다.
데이터베이스는 4가지 특징이 있습니다.
첫번째로 실시간 접근이 가능
합니다. 사용자의 데이터 요구에 실시간으로 응답할 수 있어야 합니다.
두번째로 계속 변화
합니다. 현실의 데이터는 계속 변하므로 삽입, 수정, 삭제를 통해 현재의 정확한 데이터를 유지해야 합니다.
세번째로 동시 공유가 가능
합니다. 여러 사용자가 동시에 이용할 수 있어야 합니다.
네번째로 내용으로 참조가 가능
합니다. 저장된 주소나 위치가 아닌 값으로 참조할 수 있습니다.
DataBase Management System
의 약자로 데이터베이스 관리 시스템입니다.
데이터베이스 관리 시스템은 조직에 필요한 데이터를 데이터베이스에 통합하여 저장하고 이에 대한 관리를 집중적으로 담당
합니다.
데이터베이스 관리 시스템의 주요 기능으로는 데이터베이스 정의, 조작, 제어 기능
이 있습니다.
장점
으로는 데이터 중복 통제, 독립성 확보, 동시 공유, 보안 향상, 데이터 무결성 유지, 회복 가능 등이 있고,
단점
으로는 비용 문제와 백업과 회복 방법이 복잡하다는 점이 있습니다.
스키마는 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것
입니다.
정의된 스키마에 따라 데이터베이스에 실제로 저장된 값이 인스턴스
입니다.
3단계 데이터베이스 구조는 외부 단계, 개념 단계, 내부 단계
로 나누어 집니다.
외부 스키마
는 사용자가 보는 관점으로 사용자에 따라 달라지고, 여러 개가 존재합니다.
개념 스키마
는 모든 사용자가 생각하는 데이터베이스의 모습을 하나로 합친 모습입니다.
데이터들의 관계와 제약조건, 접근권한과 보안 정책에 대해 정의합니다.
내부 스키마
는 전체 데이터베이스가 저장 장치에 실제로 저장되는 방법을 정의합니다.
데이터베이스의 물리적인 저장 구조를 표현합니다.
데이터 독립성은 하위 스키마를 변경하더라도 상위 스키마가 영향을 받지 않는 특성
입니다.
3단계 데이터베이스 구조의 목적은 데이터 독립성을 실현하기 위해서
인데, 논리적 데이터 독립성과 물리적 데이터 독립성이 존재합니다.
논리적 데이터 독립성
은 개념 스키마가 변경되더라도 외부 스키마가 영향을 받지 않는 것입니다.
물리적 데이터 독립성
은 내부 스키마가 변경되더라도 개념 스키마가 영향을 받지 않는 것입니다.
그래서 결과적으로는 외부 스키마도 영향을 받지 않습니다.
테이블을 기반으로 사용하는 데이터베이스 관리시스템
입니다.
장점
은
모델이 간단하여 이해하기 쉬우며,
사용자는 자신이 원하는 것만 명시하고,
데이터가 어디에 있는지, 어떻게 접근해야 하는지는 관계형 데이터베이스 관리시스템에서 결정한다는 것입니다.
릴레이션 스키마는 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
입니다.
릴레이션 스키마를 보면 릴레이션의 이름이 무엇이고, 어떤 속성들로 구성되어 있는지 전체 구조를 쉽게 파악할 수 있습니다.
릴레이션 인스턴스는 어느 한 시점에 릴레이션에 존재하는 투플들의 집합
입니다.
각 속성에 대응하는 실제 값으로 구성
되어 있습니다.
릴레이션 인스턴스를 보면 현재 릴레이션의 실제 내용을 쉽게 파악
할 수 있습니다.
집의 전체 구조는 자주 바뀌지 않지만 집에 사는 사람은 수시로 바뀔 수 있는 것처럼 논리적 구조를 정의하는 릴레이션 스키마는 자주 변하지 않는다는 정적인 특징
이 있지만, 릴레이션 인스턴스는 투플의 삽입, 삭제, 수정이 자주 발생한다는 동적인 특징
이 있습니다.
하나의 릴레이션에서 속성(열)의 전체 개수
를 릴레이션의 차수(degree)라고 합니다.
모든 릴레이션은 최소 1 이상의 차수를 유지해야 하고, 자주 변하지 않는다는 정적인 특징
이 있습니다.
하나의 릴레이션에서 투플(행)의 전체 개수
를 릴레이션의 카디널리티(cardinality)라고 합니다.
투플이 없는 릴레이션이 존재할 수도 있고, 새로운 투플이 계속 삽입되거나 기존 투플이 삭제될 수 있으므로 릴레이션의 카디널리티는 일반적으로 자주 변한다는 동적인 특징
이 있습니다.
키는 관계 데이터 모델에서 중요한 제약조건을 정의
합니다.
슈퍼키
는 각 행을 유일하게 식별할 수 있는 속성들의 집합입니다.
서로 구분만 할 수 있다면 '슈퍼키'라고 할 수 있습니다.
후보키
는 각 행을 유일하게 식별할 수 있는 "최소한의" 속성들의 집합이다.
서로 구분할 수 있으면서 불필요한 속성들이 없어야 '후보키'라고 할 수 있다.
기본키
는 최소성을 가지고 있고, 후보키들 중에서 하나를 메인으로 선택한 키 입니다.
대체키
는 기본키를 제외한 나머지 후보키들을 의미합니다.
외래키
는 한 테이블이 다른 테이블의 기본키를 참조해서 테이블 간의 관계를 만드는 것을 의미합니다.
데이터를 정확하고 유효하게 유지하는 무결성을 보장해야 된다는 규칙
입니다.
도메인 무결성, 개체 무결성, 참조 무결성 제약조건이 있습니다.
도메인 무결성 제약조건
은 속성값은 해당 속성 도메인에 속한 값들 중 하나여야 한다는 것입니다.
개체 무결성 제약조건
은 기본키를 구성하는 모든 속성은 널 값을 가질 수 없다는 것입니다.
참조 무결성 제약조건은 외래키
는 참조할 수 없는 값을 가질 수 없다는 것입니다.
MySQL은 가장 널리 사용되고 있는 관계형 데이터베이스 관리 시스템(RDBMS)
입니다.
DB 서버마다 독립적인 스토리지를 할당하는 방식
입니다.
장점으로는 무료
로 사용 가능하다는 점이 있고,
처리 속도가 빠르고 대용량 데이터 처리에 용이
합니다.
거의 모든 운영체제 사용을 지원
합니다.
그렇지만 단점
으로는
복잡한 쿼리는 성능이 저하
될 수 있고, 트랜잭션 지원이 완벽하지 않고,
사용자정의 함수의 사용이 쉽지 않고 유연하지 않습니다.
데이터베이스 개론
http://www.tcpschool.com/mysql/mysql_intro_intro
https://velog.io/@alicesykim95/Oracle%EA%B3%BC-MySQL%EC%9D%98-%EC%B0%A8%EC%9D%B4%EC%A0%90