데이터베이스10 [CS Study] 4. 데이터베이스 (2) # 본 글은 인하대학교 단풍나무숲 CS 스터디에 작성한 내용을 그대로 가져온 글입니다. 4. 데이터베이스 목차 ERD와 정규화 과정 트랜잭션과 무결성 2. ERD와 정규화 과정 1. ERD Entity-Relation Diagram의 약자로, DB를 설계할 때 가장 기본적인 테이블 (relation) 간 관계를 정의하는 다이어그램입니다. 관계형 DB를 표시하기에 매우 유리 비정형 DB (NoSQL)에는 적합하지 않다. 2. 정규화 (Normalisation) 정의: 릴레이션 간의 종속 관계를 바로잡아 중복 데이터를 제거하고, 데이터 정합성 (integrity)을 만족하도록 릴레이션을 여러 개로 나누는 과정을 뜻합니다. 예를 들어, 회원 정보 테이블도 사용자 닉네임을 가지고 있고, 게시글 테이블, 댓글 테.. 2022. 9. 22. [CS Study] 4. 데이터베이스 (1) # 본 글은 인하대학교 단풍나무숲 CS 스터디에 작성한 내용을 그대로 가져온 글입니다. 4. 데이터베이스 목차 데이터베이스의 기본 1. 데이터베이스의 기본 정의 데이터베이스 (database, DB)는 일정한 규칙/규약에 따라 데이터를 구조화 하여 저장하는 데이터의 모음입니다. DB를 관리하는 시스템을 DBMS (Database Management System)이라고 하며, RDBMS, NoSQL 등이 존재합니다. 각 DBMS는 각자의 질의문 (query language; query)을 통해 DB 내에 자료를 삽입, 수정, 조회, 삭제 등을 할 수 있습니다. DB, DBMS, Application의 관계도는 여기를 참고하세요. 엔티티 (Entity) 정의: 여러 개의 속성을 지닌 명사를 엔티티라고 부릅니.. 2022. 9. 21. @Transactional 어노테이션 Spring을 이용해 백엔드 개발을 하다 보면, Service 단에서 @Transactional 이라는 어노테이션을 볼 수 있습니다. 오늘은 @Transactional 어노테이션에 대해 다루어 보겠습니다. 0. 배경 1. @Transactional 어노테이션이란? 2. @Transactional 세부 옵션 0. 배경 회사에서 개발을 하면서, 화면 상에서 특정 항목 추가, 수정, 삭제를 하는 경우를 만들게 되었습니다. 앞단에서의 형식은 grid로 되어 있고, 저장 버튼을 클릭하면 각 row마다 상태가 "CREATE", "INSERT", "DELETE", "" 네 가지 값 중 하나가 담긴 상태로 Controller 단계로 넘어갑니다. Controller에서는 이를 List 형태로 받고, 이를 Service로.. 2022. 7. 3. [SQL] WITH 문 업무 중 마주한 내용에 대해 추가적으로 알아보고자 공부하고 작성하였습니다. WITH 문 쿼리를 작성하다 보면 서브쿼리 (subquery)를 작성하게 되는 경우가 많습니다. 이러한 서브쿼리를 반복해서 사용하게 되는 경우, 쿼리가 매우 복잡해지고 가독성도 좋지 않게 됩니다. WITH 문은 이러한 문제를 해결하기 위한 방법입니다. '이름을 붙인 서브쿼리'라고 요약할 수 있으며, Oracle, MSSQL, MySQL, PostgreSQL 등 주요 RDBMS는 모두 지원합니다. (MySQL의 경우 8.0버전부터 WITH문을 지원합니다.) 기본 구조는 다음과 같습니다. WITH (테이블명) AS (SELECT ~ FROM ~) SELECT ~ 다음과 같은 테이블이 있다고 가정하겠습니다. TB_CARR CARR_CO.. 2022. 2. 2. DBeaver - 편리한 DB 관리 도구 소개 얼마 전 [Spring Boot] 7. AWS에 데이터베이스 환경을 만들어 보자 - AWS RDS 작성 중에 로컬에서 DB로 접속하는 방법 중 IntelliJ의 플로그 인을 설명한 바 있습니다. 이 외에도 DB에 연결 및 관리 할 수 있는 도구는 다양하게 나와 있는데, 그 중 하나를 오늘 소개할까 합니다. 공식 홈페이지: https://dbeaver.io/ DBeaver는 Windows, macOS, Linux, Eclipse plugin 등 다양한 환경에서 다양한 DB에 접속 및 관리할 수 있는 툴입니다. 오픈 소스로 제작되었고, Oracle, MySQL, PostgreSQL 등 다양한 DB에 접속할 수 있습니다. Community edition과 enterprise 에디션이 구분되어 있는데, c.. 2022. 1. 29. [혼자 구현하는 웹서비스] 3. (1) JPA와 데이터베이스 0. 개요 1. JPA 소개 2. 프로젝트에 Spring Data JPA 적용하기 0. 개요 웹 서비스와 데이터베이스는 뗄 수 없는 관계다. 관계형 데이터베이스 (RDBMS)와 객체지향 프로그래밍 (OOP)를 같이 사용할 수 있을까? 1. JPA 소개 웹 서비스를 개발하며 데이터베이스를 사용하는 방법은 크게 두 가지가 있다. 하나는 MyBatis와 같은 SQL 매퍼 사용하기, 또 하나는 ORM을 이용하여 객체를 매핑하기. MyBatis도 많이 사용되고 있는 서비스지만, 개발을 하는 시간보다 SQL을 다루는 시간이 더 많아지게 된다. JPA (Java Persistence API)라는 자바 표준 ORM (Objecxt Relational Mapping)을 이용하여, 객체를 매핑하는 방법이 존재한다. 최근 .. 2021. 7. 8. 이전 1 2 다음