본문 바로가기
computing

DB기말 정리

by greentworkshop 2025. 4. 7.

1주차 (등장배경, 핵심 용어, MySQL서버 접속, 실습)

초기DB

특징 : 파일단위 저장, LAN으로 서버파일 접근, 

단점 : 각 응용프로그램을 독립적으로 처리(중복 저장), 데이터를 별도의 파일로 관리(종속성), 동시에 조작(일관성 훼손) 

DBMS (데이터 소유 - 서버, 데이터 요청 - 클라이언트)

단점 보완 : 데이터 표준화, 무결성 유지(중복성 해결), 서버가 파일 처리(일관성, 유지, 복구, 접근제어 - 종속성 해결) 

구분 파일 시스템 DBMS
데이터 중복 데이터를 파일 단위로 저장하므로 중복 가능 DBMS를 이용하여 데이터를 공유하기 때문에 중복 가능성 낮음
데이터 일관성 데이터의 중복 저장으로
일관성이 결여됨
중복 제거로 데이터의
일관성이 유지됨
데이터 독립성 데이터 정의와 프로그램의
독립성 유지 불가능
데이터 정의와 프로그램의
독립성 유지 가능
관리 기능 보통 데이터 복구, 보안, 동시성 제어,
데이터 관리 기능 등을 수행
프로그램 개발 생산성 나쁨 짧은 시간에 큰 프로그램을 개발할 수 있음
기타 장점 별도의 소프트웨어 설치가 필요 없음 (운영체제가지원) 데이터 무결성 유지, 데이터 표준 준수 용이

 


데이터베이스 용어

용어 특징
RDB (관계형 데이터베이스) 여러 개의 테이블이 특정 관계로 이루어져 있는 구조를 가진 데이터 베이스
Entity (엔티티) 독립적으로 존재하며 고유하게 식별이 가능한 실세계의 개체(사람, 장소, 사물..)
Entity Set (엔티티 집합) 동일한 속성의 엔티티 집합. 교집합으로 표현될 수도 있다.
스키마
외부 스키마(사용자 관점) 하나의 DB여러 개의 외부 스키마 존재
개념 스키마(조직 관점) 개체간의 관계 및 제약 조건, 접근 권한, 보안 등을 정의 (하나의 DB에 하나의 개념 스키마)
내부 스키마(저장 장치 관점) 레코드 구조, 필드 크기, 레코드 접근 경로 등 물리적 저장 구조를 정의
표 (Table용어)
Relation 관계형 데이터 베이스에서 정보를 구분하여 저장하는 기본 단위
Attribute TABLE의 열 (FIELD, COLUMN)
Tuple TABLE의 행 (RECORD, ROW)
Domain Attribute이 가질 수 있는 값의 집합
Degree Attribute (열)의 개수
Cardinality Tuple (행)의 개수

 

    Attribute (속성) 그리고 Degree (차수) = 4
스키마 Schema   도서번호 도서이름 출판사 가격
도메인 Domain INT CHAR(20) CHAR(15) INT
Tuple
Cardinality = 3
각 Instance 1 축구의 역사 굿스포츠 7000
2 축구 아는 여자  나무수 13000
3 축구의 이해 대한미디어 20000

 


테이블 만들기

int 주 정수 데이터 (-2^31 ~ 2^31)
bigint int의 범위를 초과하는 데이터 (-2^63 ~ 2^63)
float(n) 부동 소수점 숫자 데이터: n-자리의 소수점 표시 (0 < n < 53)
char(n) 고정 크기 문자열 데이터: n 바이트의 문자열 (1 < n < 8000)
varchar(n) 가변 크기 문자열 데이터: n-바이트 이하의 문자열(1 < n < 8000 or n < 2^31 ) 이 경우 varchar(max)
datetime 소수 자릿수 초가 있는 24시간제 기준의 시간과 결합된 날짜를 정의
BIT, BINARY, BLOB, BOOL

 

테이블 문법
INSERT INTO 데이터를 입력하는 구문 UPDATE 데이터를 수정하는 구문
SELECT 데이터를 읽어오는 구문 WHERE 데이터 필터하는 조건절
DELETE 데이터를 삭제하는 구문 SET 수정할 컬럼을 지정,어떤 값을 할당할지 정의

 

 


2주차 (테이블 스키마, INDEX & KEY)

테이블 생성 예제

/*테이블 만들기*/
CREATE TABLE account(nickname VARCHAR(30) NOT NULL PRIMARY KEY,
		     address VARCHAR(100),
                     manner_point INT,
                     reg_date DATETIME); /*칼럼명 자료형 속성*/
/*----------------------------------------------------------*/  
/*데이터 삽입*/
INSERT INTO account (nickname, address, manner_point, reg_date)
VALUES ('김영진','서울',100,'2023-03-04 10:10:10');

NULL != ' ', 0 (다른 개념임)

WHERE, UPDATE

where에서 사용하는 조건
<> | != | ^ 모두 ≠을 나타내는 기호
BETWEEN A AND B AB의 사이 값 불러오기
LIKE 특정 문자열이 들어간 값 불러오기
IN 2개 이상의 조건 중 하나라도 만족하는 값 불러오기
AND 모든 조건을 만족하는 값 불러오기
OR 하나의 값이라도 만족하는 값 불러오기
IS NULL/
IS NOT NULL
컬럼 값이 NULL인 값 불러오기 /
NULL이 아닌 값 불러오기
NOT 조건이 아닌 것
SELECT product FROM market
WHERE reg-date BETWEEN '2023-03-01 00:00:00' AND '2023-03-31 23:59:59' 
AND ((price BETWEEN 1000 AND 100000 AND product LIKE '_')OR price >= 200000);

 

2월에 올라온 물건들 중, 10개 미만의 제품들(조건범위)의 갯수에서 
각각 2개씩 팔렸음을 업데이트(요구사항) 하시오.
UPDATE market SET (amount = amount - 2) 
WHERE reg_date BETWEEN '2023-02-02 00:00:00' AND '2023-02-28 23:59:59' AND amount <10;

테이블 스키마 바꾸기(ALTER TABLE)

/*새 column 추가*/
ALTER TABLE table_name
ADD column_name datatype; 
	    /*삭제*/   
DROP column_name;
	        /*이름 변경*/
RENAME column_name to new_name;       
	        /*데이터타입 변경*/
MODIFY COLUMN column_name new_datatype;

정보처리문제(객관식)

데이터 조작어 – Data Manipulation Language (DML): (S.U.I.D) 

데이터 베이스의 생성 및 변경, 제거 

SELECT UPDATE INSERT DELETE 등

 

데이터 정의어 – Data Definition Language (DDL): (C.D.A) ㄸㅏㄹ-싸다

데이터베이스 안의 값들을 변경, 수정, 입력.

CREATE DROP ALTER 등

 
데이터 제어어 – Data Control Language (DCL): (G.R) DC어 지랄

데이터베이스에 접근하거나 객체에 권한을 주는 역할, 접속 권한 등을 수정.

GRANT REVOKE 등


무결성 제약조건 (개체 - 기본키P, 참조 - 외래키F, 도메인 - D)

1.개체 무결성 제약조건 (기본키 제약조건, Primary key Constraint) - 보안X
○각 테이블의 Primary key를 구성하는 속성(들)은 NULL 값이나 중복 값이 될 수 없다
 
2.참조 무결성 제약조건  (외래키 제약조건, Foreign key constraint)
○Foreign key 컬럼의 값은 NULL이거나 참조하는 부모 테이블 컬럼의 값과

    동일해야 한다.

 

3.도메인 무결성 제약조건 (Domain Constraint)
○속성 안에 들어가는 값들은 정의된 도메인에 속한 값이어야 한다.

DISTINCT : 중복된 값은 한 번만 출력

SELECT DISTINT DEPT FROM STUDENT; // 해당 학과가 몇 종류 있는지 출력

DEPT = 학과명


슈퍼키 : 투플을 유일하게 식별할 수 있는 하나의 속성(유일성) 혹은 속성의 집합

후보키 : 투플을 유일하게 식별할 수 있는 속성의 최소 집합(최소성)

복합키 : 2개 이상의 속성으로 이루어진 키

기본키 : 여러 후보키 중 하나를 선정하여 대표로 삼는 키

외래키 : 다른 릴레이션의 기본키를 참조하는 속성을 말함

대체키 : 기본키로 선정되지 않은 후보키

대리키 : 마땅한 기본키가 없을 때는 일련번호 같은 가상의 속성

 

기본키의 조건

  • 릴레이션 내 투플을 식별할 수 있는 고유한 값을 가져야 함.
  • NULL 값은 허용하지 않음.
  • 키 값의 변동이 일어나지 않아야 함.
  • 최대한 적은 수의 속성을 가진 것이라야.
  • 향후 키를 사용하는 데 있어서 문제 발생 소지가 없어야 함.

테이블 용어

Relation = Table 정보를 구분하여 저장하는 기본 단위

Attribute(속성, 열) = Field, Column .    ------  Degree : Attribute열의 개수 -- Domain : Attribute가 가질 수 있는 값의 집합

모든 속성값은 원자 값을 가짐(중복X, 모두 다른 값을 가져야 한다.)

Tuple(행) = Record, Row   -------  Cardinality : Tuple행의 개수

 

 

스키마(DB데이터 구조, 제약조건 정의)

외부 스키마( 사용자 )

개념 스키마 (조직 전체 관점)

 

RDB :

여러 개의 테이블이 특정 관계로 이루어져 있는 구조를 가진 데이터 베이스

Entity :

사람, 장소, 사물, 사건 등과 같이 독립적으로 존재하면서 고유하게 식별이 가능한 실세계의 개체

Entity set :

동일한 속성을 가진 엔티티들의 집합. 엔티티 집합에 속한 요소들이 여러 엔티티 집합에 속할 수도 있다

 

인덱스 추가 삭제 명령어 


LIKE '%신%'

-->신이라는 글자가 포함된 모든 데이터, %앞 뒤 문자 상관 없이

DROP : 테이블 지우는 명령어

GROUP BY -- HAVING

ORDER BY : 정렬

UPDATE -- SET

IS NOT NULL

INDEX는 유저가 직접 생성

VIEW - 삽입, 갱신, 삭제에 제약 (보안적인 측면이 강함)

CREATE, REPLACE (테이블 수정이란 문법 다름)

CASCADE 연쇄(연결된 모든 것을 연달아 처리)

 

CHECK제약 조건의 정의 - 과제?

BETWEEN A AND B  -- A와 B모두 포함


주관식 코드

테이블 만들기

더보기
CREATE TABLE account(nickname VARCHAR(30) NOT NULL PRIMARY KEY,
                    manner_point INT,
                    reg_date DATETIME);
                    address VARCHAR(100),

테이블 데이터 삽입

더보기
INSERT INTO table_name(column1, column2, column3, …)
VALUES (value1, value2, value3, …);
-- 입력하는 값과 열의 개수와 일치하면 column1…은 생략해도 된다
INSERT INTO table_name 
VALUES (value1, value2, value3, …);
SELECT column1, column2, …
FROM table_name
WHERE condition;(범위 제한, 없으면 모든 값)
-- 모든 열을 불러오고 싶으면 
SELECT * FROM table_name;
UPDATE table_name
SET column1 = value1, column2 = value2, … 
WHERE condition;
-- 조건절 없으면 모든 값 변환
DELETE FROM table_name WHERE condition;
-- 조건 없으면 전부 삭제

select문

SELECT seller from market WHERE reg_date < '2023-01-01 00:00:00' AND price >= 10000;

 

'computing' 카테고리의 다른 글

20250417_java7  (0) 2025.04.17
20250410_java6  (1) 2025.04.10
20250407DB_부속질의  (0) 2025.04.07
20250403_java5  (0) 2025.04.03
java중간고사 정리  (0) 2025.04.03