dev_dbdb1114

DB 관련 면접 질문 대비 ( 기본편 ) 본문

프로그래밍/MySQL

DB 관련 면접 질문 대비 ( 기본편 )

dbdb1114 2023. 9. 14. 23:35

제약조건

PrimaryKey

정의

데이터베이스 테이블에서 특정 레코드를 고유하게 식별하는 역할을 하는 칼럼

속성

  1. not null, unique 제약조건을 내포하고 있음
  2. DB 시스템은 Primary Key 필드를 보통 인덱스로 설정해서 Primary key 기반으로 레코드를 빠르게 검색할 수 있음.
  3. 데이터의 일관성을 보장하는데 중요한 역할을 하며 대개 숫자나 문자열로 구성되며, 주로 테이블의 첫번째 열로 설정됨.

Foreign Key

정의

RDBMS에서 중요한 개념으로 테이블 간의 관계를 정의하고 데이터 무결성과 무결성 유지를 위해 사용됨

속성

  1. 부모 테이블의 PrimaryKey를 자식 테이블의 ForeignKey로 설정함으로써 부모 테이블과 자식 테이블의 관계가 정의
  2. 연관 테이블이 부모테이블과 자식 테이블로 설계 되면서 부모의 레코드가 삭제 되었을 때 자식 테이블의 레코드에도 반영이 되면서 데이터 무결성을 유지시킬 수 있다.
  3. CASCADE 옵션을 설정함으로써 부모 레코드가 삭제되거나 업데이트 되었을 때 자식 테이블의 레코드도 삭제 되거나 업데이트 되게끔 설정할 수 있다.

Unique

특정 열에 대해 고유한 값을 가져야함. 중복된 값을 허용하지 않으며 Null값을 가질 수 없음

Default

새로운 레코드가 추가될 때 열에 대한 기본값을 설정할 수 있음

DDL ( Data DefinitionLanguage )

  1. 목적 : 데이터베이스 스키마(schema)를 정의하거나 수정하기 위해 사용된다. 스키마는 데이터베이스 객체의 구조를 정의함
  2. 주요 명령어
    1. Create : 데이터베이스 객체 ( 테이블, 뷰, 인덱스 등 )을 생성함
    2. Alter : 이미 존재하는 데이터베이스 객체를 수정함
    3. Drop : 데이터베이스 객체를 삭제함
    4. Truncate : 테이블의 모든 레코드를 삭제하지만 테이블 구조는 유지함
    5. Rename : 데이터베이스 객체의 이름을 변경함

DML ( Data Manipulation Language )

  1. 목적 : 데이터를 조회, 삽입, 수정, 삭제하는 등 데이터 조작을 위해 사용
  2. 주요 명령어
    1. Select : 데이터를 조회할 때 씀 ( select * from user; )
    2. Insert : 데이터를 삽입할 때 씀 ( insert into user ( id, pw ) valeus ( “DBDB”, “1234” );
    3. update : 데이터를 수정할 때 씀 ( update user set id = “dbdb11” where id = “DBDB”; )
    4. Delete : 데이터를 삭제함 ( delete from user where id = “dbdb11”; )

DCL ( Data Control Language )

  1. 목적 : 데이터베이스에 대한 접근 권한을 관리하고, 데이터 보안 및 무결성을 유지하기 위해 사용함
  2. 주요 명령어
    1. grant : 사용자에게 특정 권한을 부여함. 서버에 계정마다 조회 권한만 줄지 수정권한 까지 줄지 등을 정할 수 있음
    2. revoke : 사용자에게 부여된 권한을 취소함.

트랜잭션 (Transaction)

  1. 정의 : 하나 이상의 SQL 명령문을 논리적으로 묶어서 실행하는 데이터베이스 작업의 단위입니다. 트랜잭션은 데이터의 일관성과 무결성을 보장합니다.
  2. 특성 : ACID( 원자성, 일관성, 고립성, 지속성) 특성을 가지며, 각 특성의 의미와 중요성을 설명할 수 있습니다.
  3. 롤백 ( Rollback ) : 트랜잭션 중에 오류가 발생하거나 롤백 명령이 내려진 경우, 트랜잭션의 모든 변경사항을 이전 상태로 복구하는 역할을 합니다.
Comments