본문 바로가기

데이터베이스(Database)

(12)
[DB] SQL(2) - INSERT, DELETE, UPDATE 명령문 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. INSERT 테이블에 한 레코드를 삽입하는 명령문 여러건 입력은 INSERT INTO - 활용 문자 또는 날짜 값은 ' '로 묶어서 사용 형식 INSERT INTO 테이블명 (칼럼명1, ...) VALUES (VALUE1, ...); /* 또는 */ INSERT INTO 테이블명 VALUES(전체 컬럼의 모든 값 순서대로 입력); 첫 번째 경우에는 빈 값은 NULL로 자동으로 채워 저장된다. 두 번째 경우에는 빈 값은 NULL이나 ''(작은 따옴표 2번)으로 입력한다. INSERT ALL 한번에 여러 레코드 입력 형식 INSERT ALL INTO 테이블명(칼럼명, ...) VALUES(..
[DB] SQL(1) - SELECT 명령문 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. SELECT 테이블에 존재하는 레코드 값을 조회하는 명령문 형식 SELECT [ALL/DISTINCT] 칼럼1,... FROM 테이블명; ALL : 중복 데이터도 모두 출력(DEFAULT 값) DISTINCT : 중복 데이터는 하나만 출력. NULL 값도 하나의 값으로 간주. 테이블의 모든 레코드 값 조회 SELECT * FROM 테이블명; 별칭(AS) SELECT 칼럼명 AS 별칭, ... FROM 테이블명; 조회 결과에 별칭을 부여해 칼럼 레이블을 변경 칼럼명과 별칭 사이에 AS 키워드 사용(또는 생략 가능) 별칭은 공백이나 특수문자를 포함하는 경우에는 ""를 사용 ORDER BY ..
[DB] 데이터 모델링(10) - 분산 데이터베이스 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 분산 데이터베이스 분산 데이터베이스 물리적으로 분산된 데이터베이스를 하나의 논리적 시스템으로 사용할 수 있도록 한 데이터베이스 - 논리적으로 동일한 시스템이지만, 네트워크를 통해 물리적으로는 분산되어 있는 데이터들의 모임 - 빠른 네트워크 환경을 이용해 데이터베이스를 여러 지역 여러 노드로 위치시켜 사용성과 성능을 높인 데이터베이스 장단점 분산 데이터베이스의 적용 기법 테이블 위치 분산 테이블을 각각 다른 장소에 위치 테이블 분할 분산 각 테이블을 분할해 분산 테이블 복제 분산 동일 테이블의 복사본을 여러 서버에서 동시 관리 - 부분 복제 본사는 통합 테이블을, 지사는 지사에 해당된 로..
[DB] 데이터 모델링(9) - 반정규화(Denormalization) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 반정규화(Denormalization) 정규화된 엔티티, 속성, 관계에 대해 성능 향상을 위해 중복, 통합, 분리를 수행하는 데이터 모델링 기법 정규화를 수행하지 않은 것(비정규화)이 아님. 특징 테이블, 칼럼, 관계의 반정규화를 종합적으로 고려 - 일반적으로 Column의 중복을 통해 수행 과도한 반정규화는 데이터의 무결성을 침해 반정규화 절차 반정규화 대상조사 - 전체 데이터의 양을 조사하고 그 데이터가 해당 프로세스를 처리할 때 성능저하가 나타나는지 검증 다른 방법 유도 검토 - 데이터를 중복해 데이터 무결성을 깨뜨릴 위험을 제어하기 위해 먼저 다른 방법을 모색 - 뷰 테이블 : ..
[DB] 데이터 모델링(8) - 정규화(Normalization) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 이상현상(Anomaly) 데이터베이스를 잘못 설계해서 발생하는 현상 삭제 이상(Deletion Anomaly) - 특정 데이터를 제거하면 원치 않은 정보도 삭제되는 이상현상 - ex) 학번이 '1102'인 학생이 'A01'을 수강한 기록을 삭제하는 경우 삽입 이상(Insertion Anomaly) - 새 데이터를 삽입하려면 불필요한 정보도 함께 삽입해야 하는 이상현상 - ex) 학번이 1104, 이름이 유관순, 연락처가 010-1234-5678인 학생을 추가하는 경우 갱신 이상(Update Anomaly) - 특정 정보를 변경했지만 일부만 변경되어 데이터가 불일치하게 되는 이상현상 - ..
[DB] 데이터 모델링(7) - 성능 데이터 모델링과 관계형 모델 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 성능 데이터 모델링 정의 DB 성능을 고려해 데이터 모델링을 수행하는 것 - 정규화, 반정규화, 테이블 통합 및 분할, 조인 구조, PK, FK 등 여러 성능과 관련된 사항을 모델링에 반영 - 분석/설계 → 구현 → 테스트 → 운영의 과정을 거친 후 Backtracking 과정을 안 밟기 위해 수행 수행시점 빠를수록 좋음 - 분석/설계 단계부터 수행 시 성능개선 비용 최소화 가능 - 일반적으로 설계 → 성능 저하 발생 → 해당 SQL 튜닝 순으로 진행하는데, 바람직하지 않음 성능 데이터 모델링 진행 순서 정규화를 정확히 수행 - 주요 관심사별로 테이블 분산 DB 용량 산정 - 각 엔티티..
[DB] 데이터 모델링(6) - 식별자(Identifier) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 식별자의 정의 식별자 엔티티내에서 인스턴스들을 구분할 수 있는 구분자 하나의 엔티티에 구성되어 있는 여러 개의 속성 중 엔티티를 대표할 수 있는 속성 하나의 엔티티는 반드시 하나의 유일한 식별자가 존재해야 함 식별자와 키 - 식별자는 논리 데이터 모델링 단계에서 사용 - 키는 물리 데이터 모델링 단계에서 사용 식별자의 분류 대표성에 따른 분류 주식별자(PK) vs 보조식별자(CK) 목적(또는 스스로 생성되었는지)에 따른 분류 내부식별자 vs 외부식별자(FK) 속성 수에 따른 분류 단일식별자 vs 복합식별자 본질(또는 대체 여부)에 따른 분류 본질식별자 vs 인조식별자 식별자의 특징 유일..
[DB] 데이터 모델링(5) - 속성(Attribute) 이 글은 전공 수업 내용을 복습할 겸 기록해놓은 글입니다. 추가할 사항이 있거나 잘못된 점이 있으면 댓글로 남겨주세요. 속성의 정의 속성(Relationship) 사전적 정의 - 사물의 특징이나 본질적인 성질 - 속성이 없다면 실체를 생각할 수 없음 그렇다면, DB에서? - 업무에서 필요로 하는 인스턴스에 대해 의미상 더 이상 분리되지 않는 최소의 데이터 단위 - 엔티티에 속한 인스턴스들의 성격을 구체적으로 나타냄 - 인스턴스 각각을 구분할 수 있는 기준을 파악해 이름을 부여하여 속성화 시킴 엔티티 - 인스턴스 - 속성 - 속성값의 관계 각 엔티티는 둘 이상의 인스턴스를 가짐 각 엔티티는 둘 이상의 속성을 가짐 각 속성은 하나의 속성값을 가짐 속성의 특징 해당 업무에서 필요하고 관리해야 하는 정보이어야 ..