[CS 스터디] 데이터베이스

한주영·2023년 4월 17일
0

CS

목록 보기
12/19

관계형 데이터베이스

데이터가 하나이상의 열과 행 테이블에 저장되어 서로 다른 데이터구조가 어떻게 관련되어있는지 쉽게 파악하고 이해할수있도록 사전 정의된 관게로 데이터를 구성하는 정보 모음

데이터베이스를 사용하는 이유

•많은양의 데이터를 효율적으로 사용할수있다
•업데이트 데이터를 쉽고 안정적으로 만들수있고 정확도를 보장한다
•정보에 대한 액세스를 제어하는 보안기능을 제공하며 중복을 피하는데에 도움이된다.
•정보를 체계적으로,일관되게,안정적으로, 검색가능한 방법으로 저장하는 구조이기때문에 사용목적에 따라 다양한 데이터베이스를 선택해서 사용할수있다

출처: 생활코딩

테이블은 이름을 가지고있으며 행과 열, 그리고 거기에 대응하는 값을 가짐
위와같이 구성된 테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체

관계형 데이터베이스의 개념과 장단점

특징

1.데이터의 분류,정렬, 탐색속도가 빠르다
2.오랫동안 사용된만큼 신뢰성이 높고, 어떤상황에서도 데이터의 무결성을 보장해준다
3.기존에 작성된 스키마를 수정하기 어렵다
4.데이터베이스의 부하를 분석하는 것이 어렵다

용어

1.열
각각의 열은 유일한 이름을 가지고있으며, 자신만의 타입을 가지고있다
이러한열은 필드 또는 속성이라고 불린다
2. 행
관계된 데이터의 묶음을 의미
한테이블의 모든행은 같은수의 열을 가지고있다
이러한 행을 튜플또는 레코드라고 불린다
3.값
테이블은각각의 행과 열에 대응하는 값을 가진다.
이러한 값은 열의 타입에 맞는 값이어야 한다
4.키
테이블에서 행의 식별자로 이용되는 열을 키 또는 기본키라고 한다
즉, 테이블에 저장된 레코드를 고유하게 식별하는 후보키중에서
데이터베이스 설계자가 지정한 속성을 말한다
5.관계
테이블간의 관계는 관계를 맺는 테이블의 수에따라

1)일대일관계
-두테이블간의 서로를 참조하며 한 테이블의 각 행이 다른테이블의 한 행과 대응하는 관계
테이블의 특정행이 다른테이블의 특정행과만 연결됨
-두테이블간의 공유하는 고유한 키를 사용하여 정의

2)일대다관계
-한 테이블의 행이 다른테이빌의 여러행과 대응하는 관계
-한테이블의 특정행이 다른테이블의 여러행과 연결될수있다
-다른테이블의 특정행은 한 테이블의 특정 행에만 대응된다

3)다대다관계
-두개이상의 테이블간의 서로 많대많 관계를 가지는 관계
한테이블의 행이 다른테이블의 여러행과 대응하며
다른테이블의 한 행도 여러행과 대응 가능
-복잡한 데이터 모델링에 사용


출처:생활코딩

DML,DDL,DCL


DML(데이터 조작)

데이터베이스에 들어있는 데이터를 조회하거나 검색하기위한 명령어를 말하는것

ex) SELECT,INSERT,DELETE,UPDATE

DDL(데이터 정의)
테이블과 같은 데이터 구조를 정의하는데 사용되는 명령어
(생성,변경,삭제,이름변경)

ex)CREATE,ALTER,DROP,RENAME,TRUNCATE

DCL(데이터 보안)
데이터베이스에 접근하고 객체들을 사용할수있도록
권한을 주고 회수하는 명령어

ex)GRANT , REVOKE

KEY

1.후보키
릴레이션를 구성하는 속성들 중에서 튜플을 유일하게 식별할 수있는 속성들의 부분집합을의미

모든 릴레이션은 반드시 하나 이상의 후보키를 가져야한다
릴레이션에 있는 모든 튜플에 대해서 유일성과 최소성을 만족시켜야한다

ex)학생테이블에서 학생을 식별하는 키로 학번과 주민등록번호가 있다고 가정할때 학번과 주민등록번호는 각각후보키가 될수있음
이 두속성은 각 학생을 고유하게 식별할수있고, 테이블내에서중복된 값을 가지지않기때문

2.기본키

한 릴레이션에서 특정 튜플을 유일하게 구별할수있는속성
NULL값을 가질수 없다(개체 무결성의 첫번째 조건)
기본키로 정의된 속성에는 동일한 값이 중복되어 저장될수어뵤다
(개체 무결성의 두번째 조건)

ex)학생테이블에서 학번이 기본키라고 할때
학번은 각 학생을 고유하게식별가능하고, 중복된값을 가지지않음

3.대체키
후보키가 둘이상일때 기본키를 제외한 나머지 키
보조키 라고도 함

ex)고객테이블이있다고 가정할때 이메일,전화번호가 후보키라고 할때 고객id가 이미 기본키라면 이메일과 전화번호는 기본키로 사용되지않았으므로 대체키가 될수있음

4.슈퍼키
한 릴레이션 내에 있는 속성들의 집합으로 구성된 키
모든 튜플중 슈퍼키로 구성된 속성의 집합과 동일한 값을 나타내지 않는다
릴레이션을 구성하는 모든 튜플에대해 유일성만족 최소성은 만족시키지 못함
ex)학생테이블에서 학번과 주민등록번호가 슈퍼키로 가정햇을때
학번,주민등록번호는 각각의값이 고유하게 학생임을 식별할수있으며
행을 유일하게 식별할수있기 때문에 슈퍼키로 사용될수있다

5.외래키
한 테이브르이 속성이 다른테이블의 기본키를 참조하는 경우 사용되는 키(속성)

다른테이블의 기본키를 참조하여 두 테이블간의 관계를 형성하는데 사용되는 속성

ex)주문테이블,고객테이블이있다고했을때
주문테이블에서 주문번호,고객id,상품id등의 속성이있다고 할때
고객id는 고객테이블의 기본키인 고객id를 참조하야 해당 주문이 어떤 고객에게 속하는지를 나타내는 외래키가 된다

profile
백엔드개발자가 되고싶은 코린이:)

0개의 댓글