Study/DB 3

[MYSQL] 한글 별칭(aslias) 예외

문제상황 https://www.w3schools.com/sql/trymysql.asp?filename=trysql_func_mysql_concat 에서 쿼리를 조작하여, 그림과 같은 결과를 얻고 싶었어요. 쿼리를 아래와 같이 짰을 때 SELECT p.ProductID as '상품 아이디', p.ProductName as '상품이름', sum(od.Quantity) as sum FROM Products as p JOIN OrderDetails as od on p.ProductID = od.ProductID GROUP BY od.ProductID HAVING sum >= 200 ORDER BY sum desc; 아래의 결과가 나오게 돼요. "sum" 부분을 "총수량"으로 바꾸고 ..

Study/DB 2021.10.08

[DB] 정규화란?

데이터베이스 정규화(Normalization)는 데이터 중복을 줄이고 데이터 무결성을 개선하기 위해 정규화 단계에 따라 관계형 데이터 베이스를 구조화하는 프로세스예요. 이상 현상(Anomly) 정규화되지 않은 관계에서 관계를 수정(업데이트, 삽입/삭제) 하려고 하면, 아래와 같은 부작용이 발생할 수 있어요. 업데이트 이상 업데이트 후 동일한 정보가 여러 행에 표시될 수 있어요. 삽입 이상 테이블에 값을 못넣게 될 수 있어요. 위 그림에서 아직 어떤 과정도 지정되지 않은 교수의 경우, 과정 코드를 null로 설정하는 경우를 제외하고는 기록 할 수 없어요. 삭제 이상 위 그림에서 일시적으로 어떤 과정에도 배정되지 않으면, row자체가 사라질 수 있어요 위와 같은 문제들을 해결하기 위해 정규화 단계가 도입되었..

Study/DB 2021.09.25

[DB] 하이버네이트(Hibernate)란?

ORM 기술에 대한 명세인 JPA(Java Persistence API)의 구현체의 한 종류 JPA의 구현체이므로 JPA의 특징을 함께 정리했어요. Hibernate란? 하이버네이트는 자바 언어를 위한 ORM 프레임워크에요. JPA의 구현체로, JPA 인터페이스를 구현하며, 내부적으로 JDBC API를 사용해요. JPA는 관계형 데이터베이스와 객체의 패러다임 불일치 문제를 해결할 수 있다는 점과 영속성 컨텍스트(엔티티를 영구 저정하는 환경) 제공이 큰 특징이에요. JPA 자바 애플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스에요. 라이브러리가 아닌 인터페이스이므로 특정 기능을 하진 않아요. JDBC 자바 프로그래밍 언어와 다양한 데이터베이스 SQL 또는 테이블 형태의 데이터 사이에 ..

Study/DB 2021.08.25