일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- backend
- tiles
- 프롬프트
- usecasediagram
- UML
- Cloud
- classdiagram
- Spring
- Framework
- MVC
- App
- system developer
- 내장객체
- Program
- 맥린이
- handlerMapping
- command
- getParameter
- FrontController
- setAttribute
- HTTP
- pattern
- Agile
- ERD
- getAttribute
- controller
- mybatis
- NOTE
- DevOps
- jsp
- Today
- Total
시작은 언제라도
concepts note 본문
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 검색 속도를 빠르게 도와주는 역할
(Index는 B-Tree 방식구조를 사용하는데 이진법으로 0과 1로만 탐색하기 때문에 속도가 빨라서 사용함)
select문의 where join에서 좋은 성능을 발휘함, 대신 insert update delete문에서 성능이 떨어짐
- Database Connection Pool ( DBCP )
DB와 커넥션을 맺고 있는 객체를 관리하는 역할을 함
JDBC는 DB에 연결할 때마다 드라이버를 로드하고 Connection 객체를 얻는 작업을 반복함. 이에 반해 DBCP는 WAS 실생시, 일정량의 Connection객체를 생성하고 Pool이라는 공간에 저장해 둡니다. 그리고 DB 연결 요청이 있으면, Pool에서 Connection 객체를 쓰고 반환하게 된다.