본문 바로가기
728x90

분류 전체보기259

SQLD - 데이터 모델링의 이해2(ERD) ERD(Entity Relationship Diagram) 1970년도에 데이터 모델링이 필수로 자리 잡았을 당시, 데이터 베이스 모델 또는 비즈니스 프로세스에 대한 표준이 아직 정립되지 않았을 때, Peter Chen이 Entity Relationship Model 표기법을 발표하였고 현재까지 데이터 모델링의 표준으로 사용되고 있는 개념이다. ERD는 단어에서 의미하는 그대로 'Entitiy 개체'와 'Relationship 관계'를 중점적으로 표시하는 데이터베이스 구조를 한 눈에 알아보기 위해 그려놓는 다이어그램이다. 개체 관계도라고도 불리며 요구분석사항에서 얻은 엔터디와 속성들의 관계를 그림으로 표현한 것이다. ERD 작성절차 엔터티 도출 엔터티 배치 : 중요한 엔터티는 왼쪽 상단에 배치 엔터디 관.. 2023. 8. 16.
DBMS - Optimizer, Hint Optimizer Oracle DBMS에서는 옵티마이저(Optimizer)를 제공하고 있다.옵티마이저란 사용자가 질의한 SQL문에 대해 최적의 실행 방법을 결정하는 DBMS 내부의 핵심 엔진이다. 사용자가 쿼리문으로 결과를 요청하면 이를 생성하는 데 필요한 처리 경로는 DBMS에 내장된 옵티마이저가 자동으로 생성되고 최적의 실행 방법을 생성하여 주는데 이를 실행계획이라고 한다. SQL최적화 과정 각 실행 계획에 대한 예상 비용은 다음과 같이 구성되어 있다. COST : 예상 수행 시간, 쿼리를 수행하는 데 소요되는 시간 또는 일량 CARDINALITY : 실행 결과의 건수 옵티마이저가 사용자의 SQL 요청을 최적화하는 과정으로는 다음과 같다. 사용자가 작성한 쿼리문 수행을 위해, 실행될만한 실행 계획을 .. 2023. 8. 15.
DBMS - GRUOP BY, SUB QUERY GRUOP BY GROUP BY는 특정 컬럼을 기준으로 집계를 내는데 사용이 되는 함수이다. 즉, 특정 컬럼에서 같은 값을 가지는 데이터끼리 그룹을 지어서 보여준다. ID NAME POSITION TEAM_ID 1 홍길동 MF 232 2 이순신 DF 234 3 리신 GK 235 4 벨베스 MF 236 위의 그래프는 PLAYER 테이블로 ID(PK), NAME, POSITION, TEAM_ID(FK)로 구성되어 있다. 이 때 POSITION.별로 몇명이 속해져 있는지 알고 싶다면 다음과 같이 query문을 작성할 수 있다. -- oracle에서 POSITION 문법을 제공하기 때문에 칼럼명으로 사용할 경우 큰따옴표를 사용하여야 한다. SELECT "POSITION" 포지션, COUNT(ID) AS "POS.. 2023. 8. 15.
SQLD - 데이터 모델링의 이해1(데이터모델링단계) 데이터 모델링이란 개발자가 데이터 베이스를 만들고 다루기 위해서는 데이터 모델링이라는 과정이 필수적이다. 데이터 모델링이란, 현실 세계를 데이터 베이스로 표현하기 위해 추상화하는 것 즉, 현실에서의 고객의 요구에 따라 데이터 베이스라는 가상세계에 추상화하는 단계가 필요한 데 이를 데이터 모델링이라고 하는 것이다. 데이터 모델링에 대해서 더 자세히 살표보면, 데이터 모델링은 현실 세계를 데이터 베이스로 표현하기 위해서 추상화한다. 데이터 모델링을 하기 위해서는 Client와의 의사소통을 통해 업무 프로세스를 이해해야 한다. ERD 등 데이터 모델링 표기법을 사용해서 모델링해야 한다. Client가 쉽게 이해할 수 있도록 설계해야 한다. 즉, 데이터 모델링은 Client의 비즈니스 프로세스를 이해하고 그에 .. 2023. 8. 15.
DBMS - 집계함수, ORDERBY,CASE 집계함수 저번 글에서 다루었던 숫자형 함수 이외에도 Oracle DBMS 에서는 집계함수도 제공하고 있습니다. 집계 함수란 평균, 합계 등 특정 데이터 값을 집계하여 보여주는 편리한 기능을 제공해주는 함수이다. 집계함수를 사용할 때 주의할 점은 NULL값은 집계하지 않고 계산한다는 점과 값을 반환하기 때문에 WHERE절이 나닌 SELECT문에서 사용한다는 점이다. AVG(COLUMN) : 해당 칼럼의 모든 값의 평균 MAX(COLUMN) : 해당 칼럼의 값 중 최댓값 MIN(COLUMN) : 해당 칼럼의 값 중 최솟값 SUM(COLUMN) : 해당 칼럼의 모든 값의 합 COUNT(COLUMN) : 해당 칼럼의 값 개수 만약 NULL을 포함한 집계를 하고 싶다면 저번글에서 배운 NVL함수를 사용하면 해결이.. 2023. 8. 14.
DBMS - NULL, 숫자형 함수 NULL이란 지금까지 DBMS를 공부하면서 예제에서 가끔 보았던 용어이다. 프로그래밍을 조금이라도 해본 사람은 대략적으로 어떤 의미이고 어디에 사용하는지에 대해 알 것이다. DBMS 에서는 실제 테이블에 저장하는 값은 주소 값이다. 어떠한 정보를 조회할 때 그 주소값을 통해 실제값에 접근할 수 있는 것이다. 그렇기 때문에 테이블에 데이터를 집어넣게 되면 실제 값이 들어가는 메모리를 제공받고 테이블에는 해당 메모리의 주소가 들어가게 되는데 아직 실제 값이 뭔지 모를 때에도 해당 메모리의 주소를 입력받게 된다. 이 때에 아직 이 메모리 주소가 저장하는 값은 정의되지 않은 값이라는 것을 알려주기 위해 사용하는 용어가 바로 NULL이다. 즉, NULL은 빈 값 대신 미정 값을 부여할 때 사용하는 문법으로 어떤 .. 2023. 8. 14.
DBMS - 정규화(NF) : 이상현상 2023.08.14 - [Programming 공부/DBMS] - DBMS - 정규화(NF) : 정규화란? DBMS - 정규화(NF) : 정규화란? 정규화란 고객의 요구에 맞춰 모델링을 통해 테이블을 생성하였다고 바로 사용하게 되면 여러 이상현상들을 마주하게 된다. 이러한 이상 현상에는 불필요한 컬럼이 존재하거나 중복된 값이 존 codingralro.tistory.com 이상현상 저번 글에서 정규화의 각 과정에 대해서 알아보기 전에 잠깐 이상현상에 대해서 언급하였는데 이번 글에서는 이상현상에는 어떠한 것이 있는지 자세히 알아보겠다. 이상현상은 테이블로 구성된 데이터 베이스에 정규화가 필요한 필수적인 이유이다. 데이터 베이스를 정규화를 진행하지 않은 채 사용하게 되면(물론 처음부터 완벽하게 설계하면 안해도.. 2023. 8. 14.
DBMS - 정규화(NF) : 정규화란? 정규화란 고객의 요구에 맞춰 모델링을 통해 테이블을 생성하였다고 바로 사용하게 되면 여러 이상현상들을 마주하게 된다. 이러한 이상 현상에는 불필요한 컬럼이 존재하거나 중복된 값이 존재하는 등이 있는데 데이터를 다루는 데 심각한 불편함과 어려움을 초래하게 된다. 이것을 방지하고자 정규화라는 규칙을 세워 테이블을 이것에 맞춰서 한번 더 다듬을 필요가 있는 것이다. 정규화는 총 5개의 단계가 있고 보통은 3단계까지 진행한다. 정규화의 목적 삽입/수정/삭제의 이상현상을 제거 데이터의 중복 최소화 정규화를 너무 과하게 적용하게 되면 테이블이 너무 많이 분리되게 되어 사용시 조인이 많이 발생한다는 단점이 있어 이로 인해 성능 저하가 발생하게 되면 반정규화를 적용할 수도 있다. 1NF - 제1 정규화 각 칼럼이 하나.. 2023. 8. 14.
DML - Concatenation,Like Concatenation Concatenation은 연결을 의미하는 단어로 SELECT문을 사용하여 데이터를 조회하고 싶을 때 내가 원하는 형태로 조회를 할 수 있도록 해준다. 학생의 정보를 담고 있는 테이블에 학생의 이름과 학생의 학번을 조회하고 싶다고 가정할 때 "[학생]의 학번은 [학번]입니다"라는 형태로 조회를 해보자. SELECT STUDENT_NAME || "의 학번은 " || STUDENT_ID || "입니다" FROM STUDENT; 이렇게 조회를 하게 되면 다음과 같은 결과를 얻을 수 있다. Like LIKE 문법은 조건식에서 사용할 수 있는 편리한 문법이다. 특정 문자열이 포함된 문자열을 가리킬 때 사용하는 문법으로 사용방법으로는 다음과 같다. %[문자열] : 해당 문자열로 끝나는 모든.. 2023. 8. 13.
TCL - 트랜젝션 제어 언어 TCL이란 TCL = Transaction Control Language TCL은 Transaction Control Language의 줄임말로, 트랜젹션 제어어라고 한다. TCL에 대해서 정확히 알기 위해서는 트랜젝션이 무엇인지 알아야 한다. Transaction = 하나의 작업 단위 트랜잭션은 하나의 작업 단위를 일컫는데 하나의 작업 단위란 DMBS에서 특정 작업을 수행하는 데 필요한 쿼리문의 집합이다. 즉, 트랜잭션에는 하나 이상의 쿼리문이 포함되며 작업 단위이기 때문에 분할할 수 없다. DBMS에서는 트랜잭션을 수행하였을 때 그것이 바로 결과에 영향을 미치는 것이 아닌 작업 단위에 대한 결과를 저장해두었다가 이 결과를 진짜 적용할지 안할지에 대해 결정하는 단계가 있다. 이 때 사용하는 것이 TCL.. 2023. 8. 13.
DML - WHERE조건식 조건식이란 조건식은 조건문을 만족하는 식이라고 표현할 수 있다. 조건문이란, 참 또는 거짓 두가지 결과 중 하나로만 표현할 수 있는 문장을 일컫는데 조건식은 문장을 식으로 표현한 형태라고 할 수 있다/ 한국의 수도는 서울이다. - 참 x가 3일 때, x는 5보다 크다. - 거짓 위의 예시처럼 조건문은 참 또는 거짓으로 표현할 수 있는 문장인 것이다. 이 문장을 조건식으로 표현하면 다음과 같다. KoreaCapital = 'Seoul' - 참 x = 3, x > 5 - 거짓 이러한 조건식을 DML에서도 활용할 수 있는 문법이 이전 글에서 언급하였던 WHERE절이다. WHERE DML에서는 WHERE절을 통해 표현한 조건식에 맞는 데이터에 한해서 동작을 수행하게 된다. WHERE절을 잘 활용하기 위해서는 조.. 2023. 8. 13.
DML-SELECT, INSERT, UPDATE, DELETE DML이란 DML = Data Manipulation Language DML은 이름 그대로 데이터 조작어이다. 저번 시간까지 배운 DDL로 테이블을 정의해 주었으면 이번 시간에 배울 DML로 데이터를 다루고 조적한다. DDL에도 테이블 추가, 삭제, 수정이 있었듯이 DML에도 데이터 추가, 삭제, 수정이 있고 추가로 조회도 있다. DDL은 constraints를 통해 제약 조건을 걸었다면 DML에서는 where절을 통해 조건식을 걸 수 있는데 where절에 대해서는 다음 글에서 다루겠다. SELECT - 조회 SELECT * FROM [테이블명]; select는 조회할 때 쓰이는 DML 문법으로 FROM을 통해 어떤 테이블에서 무엇을 조회할 지를 선택할 수 있다. 위의 예시에서 *는 all을 뜻하는 문자.. 2023. 8. 13.
728x90
반응형