개발

정보처리기사 DB(데이터베이스) 요점정리

반웨디 2023. 3. 14. 17:47

DB(데이터베이스)란 정보를 효율적으로 저장하고 검색할 수 있도록 구조화된 데이터의 집합이며

 

데이터베이스를 관리하는 시스템을 DBMS라고 한다

 

테이블 명(예시) : 고객리스트

고객번호 이름 전화번호 성별
1 박중영 010-1111-1111
2 박중이 010-2222-2222
3 박중삼 010-3333-3333

관계형 데이터 베이스 구조

  • 릴레이션(관계) : DB 테이블 (고객리스트)
  • 속성 (어트리뷰트) : (고객번호, 이름, 전화번호)
  • 튜플 (엔티티) : 속성을 제외한 릴레이션의 각 행
  • 도메인 : 릴레이션에 포함된 각각의 속성들이 가질 수 있는 값들의 집합 (위와 같은 테이블에서 성별은 남, 여 이외의 값을 가질 수 없음)
  • 차수 : 한 릴레이션에 들어있는 어트리뷰트의 수 (위의 경우 3) 모든 릴레이션은 적어도 한개의 어트리뷰트를 가져야 함

데이터 베이스 key 개념

 

Super Key(슈퍼키) : 테이블에서 각 행을 고유하게 식별할 수 있는 열의 집합. Primary Key를 생성하기 위한 후보키들의 집합이거나 Primary Key 자체가 될 수도 있다.

 

Candidate Key(후보키) : 슈퍼키 중에서 유일성과 최소성을 만족하는 키. 즉, 슈퍼키 중에서 기본키가 될 수 있는 후보들을 의미한다.

 

Primary Key(기본키) : 테이블에서 각 행(튜플)을 유일하게 식별할 수 있는 열. 중복되지 않아야 하며 NULL 값을 가질 수 없다.

 

Foreign Key(외래키) : 다른 테이블의 Primary Key를 참조하는 열. 참조 무결성 제약 조건을 설정하여 데이터 일관성을 유지한다.

 

SQL(Structured Query Language) - 구조적 쿼리 언어

 

SQL은 관계형 데이터베이스에서 정보를 저장하고 처리하기 위한 프로그래밍 언어로, DDL, DML, DCL, TCL로 나눌 수 있다. DDL은 데이터베이스 구조를 정의하거나 조작하는데 사용되며, DML은 데이터를 검색하거나 조작하는데 사용된다. DCL은 데이터를 제어하는데 사용되며, TCL은 트랜잭션을 제어하는데 사용된다.

 

DDL(Data Definition Language) : 데이터베이스 구조를 정의하거나 조작하는데 사용되는 언어.

 

CREATE, ALTER, DROP 등이 있다.

CREATE 테이블 생성
ALTER 테이블 수정
DROP 테이블 삭제
TRUNCATE 테이블 초기화

☑️DDL명령어는 입력하는 순간 AUTO COMMIT이므로 주의 해야함

 

DML(Data Manipulation Language) : 데이터를 검색하거나 조작하는데 사용되는 언어. SELECT, INSERT, UPDATE, DELETE 등이 있다.

SELECT  테이블 데이터 조회
UPDATE 테이블 데이터 수정
DELETE 테이블 데이터 삭제
INSERT 테이블 데이터 삽입

 

DCL(Data Control Language) : 데이터를 제어하는데 사용되는 언어. GRANT, REVOKE 등이 있다.

GRANT 권한을 정의할 때
REVOKE 권한을 삭제할 때

TCL(Transaction Control Language) : 트랜잭션을 제어하는데 사용되는 언어. COMMIT, ROLLBACK 등이 있다.

COMMIT 트랜잭션이 수행 한 변경 내용 DB에 반영
ROLLBACK 트랜잭션이 수행했던 모든 작업 취소하고 이전 상태로 복구

 

DB트랜젝션

데이터베이스 트랜잭션(Transaction)은 데이터베이스 시스템에서 하나의 논리적인 작업 처리 단위를 나타내는 것으로,

 

데이터베이스의 상태를 변화시키기 위해서 수행되는 작업의 단위를 의미한다.

 

트랜잭션은 원자성(Atomicity), 일관성(Consistency), 독립성(Isolation), 지속성(Durability)이 보장되어야 한다.

 

데이터베이스 스키마

데이터베이스 스키마(Schema)란 데이터베이스에서 사용되는 구조와 제약 조건 등을 정의한 것으로

개념 스키마, 외부 스키마, 내부 스키마로 구성된다.

  • 개념 스키마(Conceptual schema) : 데이터베이스 전체의 논리적 구조를 정의한 것으로, 모든 응용 프로그램이나 사용자들이 필요로 하는 데이터를 포함한다. 개념 스키마는 데이터베이스의 모든 개체(Entity)와 개체 간의 관계(Relationship)를 나타낸 ERD(Entity-Relationship Diagram)로 표현할 수 있다.
  • 외부 스키마(External schema) : 응용 프로그램이나 사용자들이 필요로 하는 데이터 중 일부를 볼 수 있는 뷰(View)를 정의한 것으로, 데이터베이스 전체를 모두 표시하지 않고 필요한 일부만 표시할 수 있다. 즉, 외부 스키마는 데이터베이스 전체를 모두 보여주는 것이 아니라 일부만 보여주는 것이다.
  • 내부 스키마(Internal schema) : 물리적 저장장치에 데이터를 저장하는 방법을 정의한 것으로, 데이터베이스가 물리적으로 어떻게 저장되는지를 나타낸다. 즉, 내부 스키마는 데이터베이스가 어떻게 저장되는지에 대한 물리적인 정보를 제공한다.

ERD(Entity-Relationship Diagram)

개념 스키마를 시각적으로 표현하는 방법 중 하나로 개체, 속성, 관계등의 요소로 구성되어 있다.

 

아래는 Maria DB의 예제 쿼리문

-- 데이터베이스 생성
CREATE DATABASE mydatabase;

-- 테이블 생성
CREATE TABLE mytable (
  id INT PRIMARY KEY,
  name VARCHAR(50),
  age INT
);

-- 데이터 삽입
INSERT INTO mytable (id, name, age) VALUES (1, '박중영', 26);

-- 데이터 조회
SELECT * FROM mytable;

-- 데이터 수정
UPDATE mytable SET age = 30 WHERE name = '박중영';

-- 데이터 삭제
DELETE FROM mytable WHERE age > 20;

반응형