CS/DB(9)
-
키(Key) (슈퍼키, 후보키, 기본키, 대체키, 외래키) / 무결성 제약조건 (도메인 무결성, 개체무결성, 참조무결성)
키(Key) (슈퍼키, 후보키, 기본키, 대체키, 외래키) Key라는 것은 무엇인가를 식별하는 고유한 식별자를 의미한다. Key의 종류 슈퍼키 각 행을 유일하게 식별할 수 있는 하나 혹은 그 이상이 속성들의 집합 유일성만 만족하면 된다. 다중 컬럼이어도 상관없음. 후보키 각 행을 유일하게 식별할 수 있는 최소한의 속성들의 집합으로, 유일성과 최소성이 만족해야한다. 기본키 후보키들 중에 하나를 선택한 키로, 최소성과 유일성을 만족하는 속성으로 테이블의 PK는 오직 1개만 지정가능하다. 대체키 후보키가 2개이상일 경우, 후보키 중 기본키를 제외한 나머지 키를 대체키라고 한다. 외래키 다른 테이블의 데이터를 참조할 때, 없는 값을 참조할 수 없도록 제약을 두는 것이다. 이때, 참조될 열의 값은 참조될 테이블에..
2024.03.04 -
릴레이션 스키마와 릴레이션 인스턴스 개념
릴레이션 스키마와 릴레이션 인스턴스 개념 릴레이션은 스키마와 인스턴스로 이루어진다. 릴레이션 스키마 릴레이션에 어떤 정보가 담길지를 정의한다. 도서 릴레이션은 도서번호, 도서이름, 출판사, 가격이라는 정보를 정의하고 있는데, 각 열을 속성이라고 한다. 릴레이션 인스턴스 릴레이션 스키마에 실제로 저장된 데이터의 집합이다. 도서 릴레이션을 보면 도서 번호가 1부터 5까지 총 다섯 권의 데이터가 저장된 것을 알 수 있다. 릴레이션에서 각 행을 튜플이라고 한다. 릴레이션의 차수와 카디널리티 차수 : 속성의 개수 카디널리티 : 튜플의 개수
2024.03.04 -
데이터 독립성과 RDBMS
데이터 독립성 논리적 데이터 독립성 외부스키마와 개념스키마 사이의 독립성 개념스키마가 변경되어도 외부스키마에는 영향을 미치지 않도록 지원한다. 예를 들어, 우리가 카카오톡에서 친구들 목록을 본다고 가정하자. 이때 카카오 선물의 빼빼로 가격이 1000원 올랐다고 하여도 우리가 직접 다루고 있는 테이블이 아니기 때문에 영향을 주지 않는다. 이렇듯, 우리가 보는 외부스키마와 개념스키마가 서로 영향을 주지 않게 분리해 놓은 것을 논리적 데이터 독립성이라고 한다. 물리적 데이터 독립성 개념스키마와 내부 스키마 사이의 독립성 내부스키마가 변경되어도 개념 스키마에 영향을 미치지 않도록 지원한다. 예를 들어, 우리가 공간 효율성을 위해 VARCHAR(100)의 주소라는 속성을 VARCHAR(50)으로 바꾼다고 가정할때..
2024.03.04 -
DBMS, 스키마, 3단계 데이터베이스 구조
DBMS의 개념과 특징 DBMS(DataBase Management System, DBMS)는 데이터베이스를 조작하는 별도의 소프트웨어이다. 데이터 무결성 부적절한 자료가 입력되어 동일한 내용에 대해 서로 다른 데이터가 저장되는 것을 허용하지 않는 성질 데이터 일관성 삽입, 삭제, 갱신, 생성 후에도 저장된 데이터가 모순이 없고 동일한 규칙내에 일정해야하는 성질 데이터 회복성 장애가 발생했을때 특정 상태로 복구되어야하는 성질 데이터 보안성 불법적인 노출과 변경으로부터 보호하는 성질 데이터 효율성 응답시간, 저장공간 활용들이 최적화되어야하는 성질 스키마의 개념과 3단계 데이터베이스 구조 스키마(Schema) 데이터베이스에 저장되는 데이터 구조와 제약조건을 정의한 것 3단계 데이터베이스 구조 3단계 데이터베..
2024.03.04 -
파일시스템과 데이터베이스의 차이점
파일시스템 과거에는 데이터를 관리하기 위해 파일시스템이라는 소프트웨어를 사용했다. 파일 시스템은 데이터를 파일로 관리할 수 있도록 파일을 생성, 삭제, 수정, 검색하는 기능을 제공하고 운영체제와 함께 설치된다. 파일 시스템은 응용프로그램별로 필요한 데이터를 별도의 파일로 관리한다. 이러한 특성은 아래와 같은 문제점을 가지고 있다. 데이터 중복 : 같은 내용의 데이터가 여러 파일에 중복 저장된다. 위 그림을 보면, 두 응용 프로그램에서 고객아이디, 고객명, 연락처, 주소 등의 데이터가 중복된다. 데이터가 중복되면, 저장공간이 낭비되고 데이터의 일관성과 무결성을 유지하기 어려워진다. 일관성 문제 : 예를 들어 고객관리 응용프로그램으로 고객 데이터 파일에 어떤 고객 연락처 정보를 수정했다. 그런데 주문 데이터..
2024.03.04 -
RDB와 NoSQL의 차이
RDB와 NoSQL의 차이 RDB 특징 기존의 테이블에 컬럼을 변경하고자 할 경우, 스키마를 변경해야줘야한다. 이미 기존에 대용량의 데이터가 저장된 경우에 스키마를 변경한다면, 상당히 위험 부담이 크다. → 유연한 확장성이 부족하다. 중복 제거를 위해 정규화를 진행함으로써, 데이터 중복을 최소화할 수 있지만, join을 함으로써 응답시간이 길어진다. → 복잡한 join은 Read성능을 하락시킨다. RDB는 기본적으로 한대의 컴퓨터에 저장한다. Read/Write요청이 매우 많아진다면, 기존 RDB를 저장한 서버는 부하가 많이 발생한다. 위 경우, scale up을 통해 DB 성능을 향상시킨다. (컴퓨터 자체를 성능 좋은 컴퓨터로 바꾼다는 의미임.) 혹은, 컴퓨터를 여러대 둔다.(scale-out) 그러나..
2024.02.23