good_da22 's devLog

Database 10

관계(Relationship)

관계 (Relationship) 관계(Relationship)을 사전적으로 정의하면 상호 연관성이 있는 상태 데이터 모델에 대입하여 정의해 보면, "엔터티의 인스턴스 사이의 논리적인 연관성으로서 존재의 형태로서나 행위로서 서로에게 연관성이 부여된 상태" 관계는 엔터티와 엔터티 간 연관성을 표현하기 때문에 엔터티의 정의에 따라 영향을 받기도 하고, 송성 정의 및 관계 정의에 따라서 다양하게 변할 수 있다. 관계의 패어링 관계는 엔터티 안에 인스턴스가 개별적으로 관계를 가지는 것(패어링) 이것의 집합을 관계로 표현한다. 개별 인스턴스가 각각 다른 종류의 관계를 가지고 있다면 두 엔터티 사이에 두 개 이상의 관계가 형성될 수 있다. 각각의 엔터티의 인스턴스들은 자신이 관련된 인스턴스들과 관계의 어커런스로 참여..

Back-End/Database 2023.04.13

속성(Attribute)

속성(Attribute) 속성이란 사전적인 의미로는 사물의 성질, 특징 또는 본질적인 성질, 그것이 없다면 시레를 생각할 수 없는 것으로 정의할 수 있다. 본질적 속성이란 어떤 사물 또는 개념에서 없어서는 안 될 징표의 전부 이 징표는 사물이나 개념이 어떤 것인지 나타내고 그것을 다른 것과 구별하는 성질 데이터 모델링 관점에서 속성을 정의하자면 업무에서 필요로 하는 인스턴스로 관리하고자 하는 의미상 더 이상 분리되지 않는 최소의 데이터 단위 엔터티, 인스턴스, 속성, 속성값의 관계 엔터티에는 두 개 이상의 인스턴스가 존재하고 각각의 엔터티에는 고유의 성격을 표현하는 속성정보를 두 개 이상 갖는다. 업무에서는 엔터티를 구성하는 특징이 무엇인지 또한 각각의 인스턴스들은 어떤 성격의 데이터로 구성되는지를 파악..

Back-End/Database 2023.04.11

Entity

Entity 엔터티란 "업무에 필요하고 유용한 정보를 저장하고 관리하기 위한 집합적인 것" 업무 활동상 지속적인 관심을 가지고 있어야 하는 대상 그 대상들 간에 동질성을 지닌 인스턴스들이나 그들이 행하는 행위의 집합 눈에 보이지 않는 개념에 대해서도 엔터티로 인식이 가능하다. 엔터티는 그 집합에 속하는 개체들의 특성을 설명할 수 있는 속성(Attribute)를 갖는다. 속성 가운데는 엔터티 인스턴스 전체가 공유할 수 있는 공통 속성도 있고, 엔터티 인스턴스 중 일부에만 해당하는 개별 속성도 있을 수 있다. 엔터티는 인스턴스의 집합이라고 말할 수 있고, 반대로 인스턴스라는 것은 엔터티의 하나의 값에 해당한다고 정의할 수 있다. 엔터티의 특징 엔터티는 다음과 같은 특징을 가지고 있고 도출된 엔터티가 다음의 ..

Back-End/Database 2023.04.10

Database Modelling (데이터베이스 모델링) 2

Database Modelling (데이터베이스 모델링) 논리적 데이터베이스 모델링 개념적 데이터베이스 모델링 단계에서 정의된 E-R Diagram을 Mapping Rule을 적용 관계형 데이터베이스 이론에 입각한 스키마를 설계하는 단계와 이를 이용하여 필요하다면 정규화하는 단계로 구성 기본 키 (Primary Key) 후보 키 중에서 선택한 주 키 널(Null)의 값을 가질 수 없다. (NOT NULL) 동일한 값이 중복해서 저장될 수 없다. (UNIQUE) 참조 키, 이웃 키 (Foreign Key) 관계를 맺는 두 엔티티에서 서로 참조하는 릴레이션의 attribute로 지정되는 키 Mapping Rule 개념적 데이터베이스 모델링에서 도출된 개체 타입과 관계 타입의 테이블 정의 개념적 모델링 => ..

Back-End/Database 2022.09.26

Database Modelling (데이터베이스 모델링) 1

Database Modelling (데이터베이스 모델링) 정보화 시스템을 구축하기 위해 어떤 데이터가 존재하는지 또는 업무에 필요한 정보는 무엇인지 분석하는 방법 관계형 데이터베이스는 표(table) 개념을 사용해서 데이터를 구성하는 방법을 사용 자바관점에서 table 하나는 Dto 하나 Database Modeling 순서 업무 프로세스 분석 개념적 모델링 - 개념적 구조 성립 논리적 모델링 - 데이터 모델 정립 물리적 모델링 - 물리적 데이터베이스 생성 일치성 검토 개념적 데이터베이스 모델링 업무분석 단계에서 얻어진 내용을 토대로 우선 Entity를 추출하고 Entity내에 속성(Attribute)을 구성하며 Entity간의 관계를 정의해서 ER-Diagram을 정의하는 단계 사용자 부문의 처리현상을..

Back-End/Database 2022.09.26

Sub query

서브 쿼리 (Sub Query) 서브 쿼리(sub query)란 다른 쿼리 내부에 포함되어 있는 SELECT문을 의미 서브 쿼리를 포함하고 있는 쿼리를 외부 쿼리(outer query) 또는 메인 쿼리(main query)라고 부르며, 서브 쿼리는 내부 쿼리(inner query)라고도 부른다. 서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고 반드시 괄호 () 로 감싸져 있어야 한다. 서브 쿼리를 모른다면 JOIN을 사용해야 한다. JOIN의 경우 쿼리가 복잡해지거나 카테시안곱으로 인한 속도 저하 발생 가능(case by case) 서브 쿼리를 이용하여 CREATE, INSERT, UPDATEm DELETE 가능 서브 쿼리 종류 중첩 서브 쿼리(Nested Subquery) : WHERE 문에 작성하는..

Back-End/Database 2022.09.19

JOIN

JOIN 둘 이상의 테이블에서 데이터가 필요한 경우 테이블 JOIN이 필요 일반적으로 JOIN 조건을 포함하는 WHERE 절을 작성해야 한다. JOIN 조건은 일반적으로 각 테이블의 PK와 FK로 구성 JOIN 종류 INNER JOIN OUTER JOIN LEFT OUTER JOIN RIGHT OUTER JOIN JOIN 조건의 명시에 따른 구분 NATURAL JOIN CROSS JOIN(FULL JOIN, CARTESIAN JOIN) JOIN 주의 JOIN의 처리는 어느 테이블을 먼저 읽을지를 결정하는 것이 중요(처리할 작업량이 상당히 달라진다) INNER JOIN : 어느 테이블을 먼저 읽어도 결과가 달라지지 않아 MySQL 옵티마이저가 JOIN의 순서를 조절해 다양한 방법으로 최적화 수행 OUTER..

Back-End/Database 2022.09.19

MySQL function / GROUP BY / Transaction

MySQL 내장함수 숫자 관련 함수 ABS(숫자) : 절대값 CEILING(숫자) : 값보다 큰 정수 중 가장 작은수 FLOOR(숫자) : 값보다 작은 정수 중 가장 큰 수 ROUND(숫자, 자릿수) : 자릿수 기준으로 반올림 TRUNCATE(숫자, 자릿수) : 숫자를 자릴수를 기준으로 버림 POW(X, Y) or POWER(X, Y) : X의 Y 제곱 MOD(A, B) : A mod B GREATEST(num1, num2, ...) : 주어진 수에서 가장 큰 수를 반환 LEAST(num1, num2, ...) : 주어진 수에서 가장 작은 수를 반환 문자 관련 함수 ASCII(문자) : .문자의 아스키 코드 값 리턴 CONCAT('문자열1', '문자열2', ...) : 문자열..

Back-End/Database 2022.09.19

Data Manipulation Language (DML)

Data Manipulation Language (DML) INSERT : 데이터베이스 객체에 데이터를 입력, create SELECT : 데이터베이스 객체에서 데이터를 조회, retrieve UPDATE : 데이터베이스 객체에 데이터를 수정, update DELETE : 데이터베이스 객체에 데이터베이스를 삭제, delete INSERT INSERT INTO table_name VALUES(col_val1, col_val2, ... , col_valN); INSERT INTO table_name (col_name1, col_name2, ... , col_nameN) VALUES(col_val1, col_val2, ... , col_valN); INSERT INTO table_name (col_name1,..

Back-End/Database 2022.09.11

RDBMS & SQL

RDBMS 관계형(Relational) 데이터베이스 시스템 테이블 기반(Table based)의 DBMS 데이터를 테이블 단위로 관리 - 하나의 테이블은 여러 개의 컬럼(Column)으로 구성 중복 데이터를 최소화 - 같은 데이터가 여러 컬럼 또는 테이블에 존재 했을 경우, 데이터를 수정 시 문제 발생 가능성이 높아짐, 정규화 여러 테이블에 분산되어 있는 데이터를 검색 시 테이블 간의 관계(join)를 이용하여 필요한 데이터를 검색 SQL (Structured Query Language) Database에 있는 정보를 사용할 수 있도록 지원하는 언어 모든 DBMS에서 사용 가능 대소문자는 구별하지 않는다.(데이터의 대소문자는 구분) DDL (Data Definition Language) DDL (Data..

Back-End/Database 2022.09.11