목록DATABASE (8)
한 걸음씩 기록하며
1. 정규화 (Normalization) 정규화란 관계형 데이터베이스의 설계에서 데이터 간의 중복을 최소화되게 데이터를 구조화하는 프로세스를 뜻한다. 정규화는 함수적 종속성을 이용해서 연관성이 있는 속성들을 분류하고, 각 릴레이션들에서 이상현상이 생기지 않도록 하는 과정이다. 이 과정은 큰 테이블을 연관이 있는 컬럼들만 쪼개서, 중복이 없는 형태로 작게 여러 테이블로 쪼개 나가는 과정을 가진다. 1.1. 정규화의 목적 불필요한 데이터를 제거하고 데이터 중복을 최소화하기 위해서 데이터베이스 구조 확장 시, 재 디자인을 최소화하기 위해서 무결성 제약 조건의 시행을 간단하게 하기 위해서 테이블 구성을 논리적이고 직관적으로 만들어, 이상현상을 방지하기 위해서 1.2 이상현상(Anomaly) 삽입 이상(inser..
1. Transaction (트랜잭션) 1.1 트랜잭션의 정의 트랜잭션이란 "더이상 분할이 불가능한 업무처리의 단위" 혹은 "읽기와 쓰기를 하나의 논리적 단위로 묶는 방법"을 의미한다. 위의 정의를 조금 풀어서 설명하면 다음과 같다. 트랜잭션이란 질의(query)를 하나의 묶음으로 처리해서 만약 중간에 실행이 중단되었을 경우, 처음부터 다시 실행하는 Rollback을 수행하고, 오류 없이 실행을 마칠 경우 commit하는 실행 단위를 의미한다. 즉, 한 번 질의가 실행되면 질의가 모두 수행되거나 모두 수행되지 않는 작업 수행의 논리적 단위이다. (all-or-nothing) 트랜잭션은 작업 수행의 논리적 단위이므로, DBMS의 성능은 초당 트랜잭션의 실행 수 (TPS: Transaction per sec..
MySQL의 ORM 중 하나인 Sequelize를 공부하다가, MongoDB의 Mongoose가 ORM이 아닌, ODM이라는 것을 알게되었다. 그리고 곰곰히 생각해보니 ORM은 Object-Relational Mapping인데, MongoDB는 관계 설정이 없으니 ORM이 아닌게 맞구나 라는 생각을 하게되었다. 그래서 오늘은 ODM에 대해서 살짝 정리해보고자 한다. ODM (Object Data Mapping) ORM이란 무엇인가 편에서 살펴보았듯이, ORM은 기본적으로 객체 지향 패러다임을 이용하여 RDBMS에 대한 작업을 수행하는 역할을 담당한다. https://haksae.tistory.com/131?category=958700 [ORM]이란 무엇인가 1. ORM ORM이란 Object-Relati..
지난 글에서 데이터 모델링에 대한 글을 올렸었다. 오늘은 데이터 모델링의 3단계에서 두 번째 단계인 논리적 데이터 모델링에서 사용되는 ERD에 대해서 정리해보려 합니다. https://haksae.tistory.com/143?category=958700 [Data Modeling] 1. 데이터 모델링 1.1 모델링 일반적으로 "모델링"이란 세상에 존재하는 다양한 사물이나 현상들을 일정한 표기법에 의해 나타내는 것을 의미한다. 모델링의 대표적인 3가지 특징 추상화(모형화, haksae.tistory.com 1. 데이터 모델링 절차 위의 내용에서 언급했던 데이터 모델링 3단게에 근거하여, 데이터 모델링 절차 정리를 간단히 정리하면 다음과 같다. 1) 업무 파악 단계 : 화면에 어떠한 것들이 필요한지에 대한 ..
1. 데이터 모델링 1.1 모델링 일반적으로 "모델링"이란 세상에 존재하는 다양한 사물이나 현상들을 일정한 표기법에 의해 나타내는 것을 의미한다. 모델링의 대표적인 3가지 특징 추상화(모형화, 가설적) 추상화는 현실 세계를 일정한 형식에 맞추어 표현한다는 것을 의미한다. 다양한 현상을 일정한 양식인 표기법에 의해 표현한다. 단순화 복잡한 현실 세계를 약속한 규약에 의해 표기된 표기법이나 언어로 표현하여 현실세계를 보다 쉽게 이해할 수 있도록 한다. 명확화 누구나 이해하기 쉽도록 대상에 대한 애매모호함을 제거하고 보다 정확하게 현상을 기술한다. 1.2 데이터 모델링 데이터 모델링은 사용자의 요구사항으로부터 데이터의 실체를 나타내는 것을 의미한다. 정보 시스템을 구축하기 위한 데이터 관점의 업무 분석 기법 ..
1. ORM ORM이란 Object-Relational Mapping의 약자로서, 객체(클래스)와 관계(RDB)와의 설정을 의미한다. ORM은 객체와 관계형 데이터베이스의 데이터를 매핑해주는 역할을 수행한다. 객체 지향 프로그래밍은 클래스를 사용하고 관계형 데이터베이스는 테이블을 사용한다. 여기서 객체 모델과 관계형 모델 간에 불일치가 존재하는데, 이를 객체 간의 관계를 바탕으로 SQL을 자동 생성하여 불일치를 해결하는 것이 바로 ORM이다. 데이터베이스 데이터 object 필드 객체를 통해 간접적으로 데이터베이스 데이터를 다룬다. 대표적인 ORM Framework JPA/Hibernate JPA(Java Persistence API)는 자바의 ORM 기술 표준으로 인터페이스의 모음이다. 이러한 JPA ..
📋 Database는 크게 관계형 DB와 비관계형 DB로 나눌 수 있다. 본 글은 관계형 DB(SQL)과 비관계형 DB(NoSQL)을 비교하고, 어떤 상황에서 어떤 DB를 사용하는 것이 효과적인지 살펴보려고 한다. 1. SQL (Relational DataBase) SQL은 Structured Query Language의 약자로, "구조화된 쿼리 언어"를 의미한다. 즉 SQL은 DB 자체를 나타내는 것이 아닌 어떠한 유형의 DB와 상호 작용하는데에 사용하는 쿼리 언어이다. SQL은 쿼리 언어지만, 흔히 관계형 데이터베이스라는 의미로 사용된다. 관계형 데이터베이스는 가장 많이 사용되고 있는 DB의 한 종류이다. (고전적인 데이터 베이스) table로 이루어져 있고, table은 key와 value의 관계를..
1. Database Data는 컴퓨터에서 다루는 모든 자료들을 의미힌다. Database(이하 DB)는 컴퓨터에서 다루는 자료들을 통합하여 관리하는 데이터의 집합체를 의미한다. 📋 왜 데이터 베이스를 사용하는 것일까? 데이터를 오랜 기간 저장 및 보존하기 위해 메모리(RAM)에 존재하는 데이터는 휘발성이기 때문에 영구히 보존할 수 없다. 보관하고 싶은 데이터를 DB를 사용하여 저장하면 필요한 자료들을 계속해서 보존할 수 있다. 데이터를 체계적으로 관리하기 위해 데이터를 그냥 저장하면, 저장된 데이터들을 사용하기 어렵고 수많은 비효율을 양산해낼 것이다. DB는 데이터를 구조화하여 관리할 수 있게 해주며, 중복된 데이터를 없애고 효율적인 처리를 할 수 있도록 관리한다. 2. DBMS (Database Ma..