데이터베이스 3

데이터 모델링 수업

필요성 비즈니스적 관점 어떤 데이터를 저장해야 하는가? 어떤 데이터를 집어넣고, 집어넣지 않을지 결정하기 위해 비즈니스적 관점이 필요하다. 프로그래머의 관점 어떻게 데이터를 결정하는가? 어떤 데이터를 저장할 것인지 결정했으면, 그것을 어떻게 저장할지에 대한 관점이 필요하다. 모델링 단계 사용자 요구사항 분석 개념적 데이터 모델링 요구사항의 해석 오류를 방지 실세계 데이터를 개념적으로 일반화시켜 데이터 구조, 데이터 타입, 속성, 관계, 제약 조건 등을 이끌어내는 과정 논리적 데이터 모델링 → 개념 스키마 특정 DBMS의 구현 모델에 맞춰 데이터를 표현하는 과정 데이터 정의 언어(DDL)로 기술된 개념 스키마 생성 물리적 데이터 모델링 데이터베이스 파일 내부 저장구조, 파일 구성, 인덱스, 접근 경로 등을..

Study/강의 메모 2022.03.15

DBMS 개요

데이터베이스와 DBMS 데이터베이스가 단순히 데이터를 저장하는 공간을 의미한다면, DBMS(Database Management System)는 그 공간을 운영하는 소프트웨어라고 할 수 있다. DBMS의 특징 데이터의 무결성 데이터에 오류가 나는 것을 방지하기 위해 데이터베이스는 제약 조건Constraint이라는 특성을 가진다. 이를테면 학생을 데이터화 할 때, 학번은 유일해야 한다. 같은 학번을 가진 학생은 존재할 수 없다. 이럴 때, '학번'은 제약조건이 된다. 이 제약조건을 기준으로 데이터를 저장해두면, 오류가 발생할 확률이 줄어들 것이다. 데이터의 독립성 데이터베이스의 크기를 변경하거나 데이터 파일의 저장소를 변경하더라도, 기존에 작성된 응용프로그램은 전혀 영향을 받지 않아야 한다. 즉, 서로 의존..

MariaDB 2020.09.28

Spring Data JPA

JPA 스프링 레거시 프로젝트에서는 MyBatis를 이용해 Mapper를 만들고 직접 쿼리를 만들었다. 쿼리를 만들 때는 그 쿼리가 제대로 작동하는 지, 우선 해당 데이터베이스에서 직접 테스트하고, 코드에 적용했다. 간단한 CRUD 정도는 문제가 되지 않았지만, 그것도 쌓이면 나름 시간이 걸리는 일이다. 무엇보다 여러 개의 테이블을 join해서 작업하는 경우에는 쿼리를 짜는 데에만 꽤 오랜 시간이 걸렸다. 책에서도 "실제 개발 시간보다 SQL을 다루는 시간이 더 많았"다. "테이블 모델링에만 집중하고 객체를 단순히 테이블에 맞추는 기형적인 형태"였다고 설명한다. 내가 생각하기에 데이터는 거의 모든 것이다. 복잡하게 생각할 것도 없이 자명하다. 객체를 이용해 데이터를 운반하지만, 객체는 할 일을 마치면 가..

Spring 2020.09.14