데이터베이스

    [세미 프로젝트] 구독 쇼핑몰 ERD 다이어그램

    [세미 프로젝트] 구독 쇼핑몰 ERD 다이어그램

    쇼핑몰 ERD 다이어그램 쇼핑몰 기능을 중심으로 회원 / 상품 / 게시판 / 결제 등과 관련된 테이블을 만들었다. 세미 프로젝트를 진행하면서 가장 어려우면서 재밌었던 부분이고, 기능 구현 전에 작성한 터라 많은 에러가 있을 거라 예상했다. 그래도 다행히 작성한대로 스크립트가 무사히 읽혀졌고, 큰 문제는 없었다. 다만 기능 구현을 하면서 다대다 관계로 테이블이 한개 더 추가되기도 했고, 기능 구현을 못해 사용되지 않은 테이블도 있었다. 그리고 팀원 모두가 같이 사용하는 ERD 다이어그램이다보니 수정을 할 때 굉장히 조심스러웠고, 수정 된 부분을 노션에 바로바로 공유하는 등 추후 공유되지 않은 수정사항으로 프로그램 실행 시 오류가 나지 않도록 노력했다. 기능 구현 시 작성한 DTO 필드명과 컬럼명이 좀 더 ..

    [데이터베이스] 관계형 모델

    릴레이션 관계형 모델에서 데이터를 저장 관리하는 2차원 형태의 표 릴레이션의 특징 레코드의 유일성 : 중복된 레코드의 존재가 불가능 레코드의 무순서성 : 레코드의 순서는 의미가 없음 컬럼의 무순서성 : 컬럼은 순서가 없고, 이름과 값의 쌍 컬럼값의 원자성 : 모든 값은 나눌 수 없는, 단 하나의 의미 키(key) 릴레이션에 포함된 레코드를 유일하게 식별할 수 있는 값. 유일성과 최소성을 만족한다. 1. 키 속성 유일성 (Uniqueness) 최소성 (Irreducivility) 2. 키의 종류 수퍼키 : 유일성 만족 후보키 : 유일성 최소성 만족 기본키(PK) : 레코드의 구분을 위해 선택된 후보키 외래키(FK) : 참초된 다른 릴레이션의 기본키 관계형 모델의 제약조건 영역 제약 조건 : 컬럼에 정의된 ..

    [데이터베이스] 데이터베이스 모델링

    [데이터베이스] 데이터베이스 모델링

    데이터베이스 모델링 데이터 모델? 데이터의 의미, 데이터의 타입, 연산 등 현실 세계의 정보들을 데이터베이스에 표현하기 위해서 단순화, 추상화하여 체계적으로 표현할 수 있는 모형을 데이터 모델이라고 한다. 1. 데이터베이스 모델링의 개념 데이터의 의미를 파악하고 데이터와 관여하는 업무 프로세스를 개념적으로 정의하고 분석하는 작업 2. 모델링의 단계 사용자 요구 사항 분석 ↓ 데이터 및 분석 업무 개념적 데이터 모델링 ↓ ER 모델 논리적 데이터 모델링 ↓ 관계형 모델 물리적 데이터 모델링 ↓ 물리적 세부사항 내부 스키마 1. 사용자 요구사항 분석 사용자가 원하는 애플리케이션 프로그램의 요구사항을 만족하는 데이터베이스를 모델링하기 위해 실제 업무에서 사용되는 데이터의 종류와 특징을 폭넓게 파악하는 과정 요..

    [Oracle] Chap14 권한과 ROLL

    권한 (GRANT) 사용자의 계정과 암호설정, 권한 부여 보안을 위한 데이터베이스 관리자 사용자가 데이터베이스의 객체 (테이블, 뷰 등)에 대해 특정 권한을 가질 수 있게 하는 권한이 있음 다수의 사용자가 공유하는 데이터베이스 정보에 대한 보안 설정 데이터 베이스에 접근하는 사용자 마다 서로 다른 권한과 롤을 부여함 1. 내가 다른 사용자에게 부여한 객체 권한을 조회 SELECT UTPR.* FROM USER_TAB_PRIVS_RECD UTPR; 2. 나에게 부여된 객체 권한, 객체 이름을 조회 SELECT UTPM.* FROM USER_TAB_PRIVS_MADE UTPM; 1. 시스템 권한 데이터베이스 관리자가 가지고 있는 권한으로 오라클 접속, 테이블, 뷰, 인덱스 등의 생성 권한 CREATE USE..

    [Oracle] Chap07 DML

    DML (Data Manupulation Language) 데이터 조작 언어 INSERT, UPDATE, DELETE, SELECT 테이블에 값을 삽입하거나, 수정하거나, 삭제하거나, 조회하는 언어 1. INSERT 새로운 행을 추가하는 구문이다. 테이블의 행 갯수가 증가한다. 테이블의 일부 컬럼에 INSERT할 때 INSERT INTO 테이블명 (컬럼명, 컬럼명, ...) VALUES (데이터, 데이터, ...); 테이블의 모든 컬럼에 INSERT할 때 INSERT INTO 테이블명 VALUES (데이터, 데이터, ...); 하지만 모든 컬럼에 INSERT할 때에도 컬럼명을 기술하는 것이 의미 파악에 더 좋다. INSERT INTO EMPLOYEE E ( E.EMP_ID, E.EMP_NAME, E.EM..

    [Oracle] Chap05 SUBQUERY

    SUBQUERY 하나의 SELECT 문장의 절 안에 포함된 또 하나의 SELECT 문장이다. 서브쿼리는 메인쿼리가 실행되기 이전에 한번만 실행되며, 비교연산자의 오른쪽에 기술해야 하며, 반드시 괄호로 묶어야 한다. 또한 서브쿼리와 비교할 항목은 반드시 서브쿼리의 SELECT한 항목의 개수와 자료형을 일치시켜야 한다 서브쿼리는 SELECT, FROM, WHERE, HAVING, ORDER BY 절에서 사용할 수 있다. 예를 들어 SELECT 해야하는 컬럼에 대한 조건값도 조회해봐야 알 수 있을 때 서브쿼리를 이용한다. 어떠한 사원A가 속한 부서와 같은 부서의 직원을 조회한다고 할 때, 사원 A가 속한 부서가 메인 쿼리에서의 조건이지만 이 역시 SELECT해봐야 알 수 있다. SELECT DEPT_CODE ..

    [Oracle] Chap04 JOIN 조인

    JOIN 두 개 이상의 테이블을 하나로 합쳐서 결과를 조회한다. 1. EQUAL JOIN 조인은 기본이 EQUAL JOIN이다 (EQU JOIN이라고도 함) 연결되는 컬럼의 값이 일치하는 행들만 조인된다. 일치하는 값이 없는 행은 조인에서 제외 되는 것을 INNER JOIN이라고 한다. JOIN의 기본은 INNER JOIN & EQU JOIN이다. 1-1. 오라클 전용 구문 FROM절에 ',' 로 구분하여 합치게 될 테이블명을 기술하고 WHERE절에 합치기에 사용할 컬럼명을 명시한다. 연결에 사용할 두 컬럼명이 다른 경우 SELECT EMP_ID , EMP_NAME , DEPT_CODE , DEPT_TITLE FROM EMPLOYEE , DEPARTMENT WHERE DEPT_CODE = DEPT_ID;..

    [Oracle] Chap03 GROUP BY / HAVING

    GROUP BY와 HAVING 5. SELECT 컬럼명 AS 별핑, 계산식, 함수식 1. FROM 참조할 테이블명 2. WHERE 컬럼명 | 함수식 비교연산자 비교값 3. GROUP BY 그룹을 묶을 컬럼명 4. HAVING 그룹함수식 비교연산자 비교값 6. ORDER BY 컬럼명 | 별칭 | 컬럼순번 정렬방식 [NULLS FIRST | LAST] 쿼리문 실행 순서 : FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY 1. GROUP BY 같은 값들이 여러 개 기록 된 컬럼을 가지고 같은 값들을 하나의 그룹으로 묶음 GROUP BY 컬럼명 | 함수식, ... 그룹으로 묶은 값에 대해서 SELECT절에서 그룹함수를 사용한다. -- DEPT_CODE 기준으로 그룹..

    [Oracle] Chap02 그룹함수와 단일행함수

    손가락 아프게 수업 내내 SQL쿼리문 작성한 결과... 오늘 하루동안 배운 내용이 이만큼이나 쌓였다. 혼자 독학하려 해도 이렇게 단시간내에 학습하기 어려웠을텐데, 너무 숨차면서도 역시 수업이 최고구나 느꼈다. 그룹함수와 단일행함수 함수(FUNCTION) : 컬럼 값을 읽어서 계산한 결과를 리턴함 단일행(SINGLE ROW) 함수 : 컬럼에 기록된 N개의 값을 읽어서 N개의 결과를 리턴 그룹(GROUP) 함수 : 컬럼에 기록된 N개의 값을 읽어서 한 개의 결과를 리턴 SELECT절에는 단일행 함수와 그룹 함수를 함께 사용하지 못한다. 결과 행의 갯수가 다르기 때문. 1. 그룹함수 SUM, AVG, MAX, MIN, COUNT SUM(숫자가 기록된 컬럼명) 합계를 구하여 리턴 SELECT SUM(SALARY..