시작은 언제라도

concepts note 본문

Database

concepts note

row_a_boat 2022. 7. 24. 17:24

DB

 

 

- 정규화

관계형 데이터베이스의 설계에서 중복을 최소화하게 데이터를 구조화하는 프로세스

목적 : 데이터 구조의 안정성 최대화, 효과적인 검색 알고리즘(Query)

중복 배제를 통한 DML(Data Manipulation Language) 이상 발생 방지



- ERD

: Entity Relationship Diagram

개체 관계 모델링, 관계형 데이터베이스 설계를 위한 다이어그램

 

논리 데이터 모델링

-       논리적인 데이터 관리 및 관계를 정의한 모델

-       전체 업무 범위와 업무 구성요소를 정의하고 확인할 수 있다

물리 데이터 모델링

-       논리 데이터 모델을 DBMS에 맞게 구체화시킨 모델을 말한다

식별관계 identifired relationship

부모테이블(마스터테이블)의 기본키 pk 혹은 복합키 복합pk의 구성원으로 전이되는 관계

비식별관계 non-identified relationship

부모테이블의 기본키 혹은 복합키가 자식 테이블의 일반 속성으로 전이되는 관계

 

 

- 다 대 다 관계처리 -> 교차 엔티티

다 대 다 관계(many-to-many relation)는 교차엔티티로 해결한다

 

 

- DDL, DML , DCL

1. data definition language : 데이터 정의어

Create 생성 drop 삭제 alter 수정

2. DML Data Manipulation Language : 데이터 조작어

Insert 삽입

 delete 삭제 update 수정 select 조회

3. DCL Data Control Language 데이터 제어어

Commit : 작업내용을 실제 DB에 반영

ROLLBACK : 작업을 취소하고 원상태로 되돌린다

GRANT 권한부여

REVOKE 권한취소

 

 

- join(Inner join)

join이란 복수의 테이블을 결합, 하나의 테이블인 것처럼 결과를 출력

inner join : 조인하는 두개의 테이블 모두에 데이터가 존재하는 행에 대해서만 결과를 가져온다.

 

 

- outer join ( left , right )

JOIN 조건에서 한쪽 값이 일치하지 않더라도 행을 반환

 

 

- group by ~ having

Group by : 테이블에서 특정 컬럼을 기준으로 그룹화하여 검색할 때 사용

Having : group by와 함께 사용하는 조건절(그룹에 대한 조건을 지정)

 

 

- union, union all

union이란 여러 개의 sql문을 합쳐 하나의 sql문으로 만들어주는 방법

 

union, union all

두 쿼리문을 하나로 합쳐준다

Union : 중복된 값을 제거해서 알려준다, 중복 제거를 위한 연산을 한 번 더 하기 때문에 union all보다 속도가 느리다

Union all : 중복된 값도 모두 보여준다.

 

 

- Transaction ( commit , rollback )

: 트랜잭션이란 사전적 의미로 작업단위(or 업무단위)를 의미

데이터베이스의 상태를 변경시키기 위해 수행하는 작업 단위를 말한다

DCL -> COMMIT ROLLBACK

COMMIT : 변경된 모든 내용을 실제 데이터베이스에 반영 (실제 저장)

ROLLBACK : 변경된 모든 내용을 취소하고 이전 상태로 되돌림

 

 

- SubQuery

서브쿼리, 부쿼리, 내부쿼리, 하위쿼리

Select 문 안에 다시 select 문이 기술된 형태의 쿼리(query)

 

 

- Inline View

From절에 오는 subquery이다

From 절에서 원하는 데이터를 조회하여 가상의 집합을 만들어 조인을 수행하거나 가상의 집합을 다시 조회할 때 사용한다

Inline view 안에 또 다른 inline view 가 올 수 있다

 

 

- View

View는 저장장치 내에 물리적으로 존재하진 않지만 사용자에게 있는 것처럼 보여지는 가상의 테이블이다

 

 

- Index

DB 검색 속도를 빠르게 도와주는 역할

(IndexB-Tree 방식구조를 사용하는데 이진법으로 01로만 탐색하기 때문에 속도가 빨라서 사용함)

select문의 where join에서 좋은 성능을 발휘함, 대신 insert update delete문에서 성능이 떨어짐

- Database Connection Pool ( DBCP )

DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 함

JDBCDB에 연결할 때마다 드라이버를 로드하고 Connection 객체를 얻는 작업을 반복함. 이에 반해 DBCPWAS 실생시, 일정량의 Connection객체를 생성하고 Pool이라는 공간에 저장해 둡니다. 그리고 DB 연결 요청이 있으면, Pool에서 Connection 객체를 쓰고 반환하게 된다.