티스토리 뷰
① DBMS(DataBase Management System)
다수의 사용자들이 데이터베이스에 접근 할 수 있도록 해주는 소프트웨어 도구
② DBMS 종류 : MySQL, ORACLE, Postgres
③ JDBC(Java DataBase Connectivity)
JAVA에서 데이터베이스에 접속하기 위한 DBMS 접속 인터페이스
④ ORM(Object-relational mapping)
객체 지향 프로그래밍에서 객체(Object)와 관계형 데이터베이스의 데이터(Table)를 자동으로
매핑시켜주는 개념
객체 지향 프로그래밍은 클래스를 사용하고, 관계형 데이터베이스는 테이블을 사용
객체 모델과 관계형 모델 간에 불일치가 존재
ORM을 통해 객체 간의 관계를 바탕으로 SQL을 자동으로 생성하여 불일치를 해결
⑤ ORM(Object-relational mapping) 종류
Flask - SQLAlchemy
Django - 내장 ORM을 가진다.
Node.js - Sequalize
Java - Hybernate, JPA
Persistence Framework | |
SQLMapper | ORM |
SQL ⬅ SQLMapper ➡ Object 필드 SQL 문장으로 직접 데이터베이스 데이터를 다룬다. SQL을 직접 작성해줘야 한다. Mybatis, JdbcTemplates(spring) |
데이터베이스 데이터 ⬅ ORM ➡ Object 필드 객체를 통해 간접적으로 데이터베이스 데이터 다룬다. 객체와 관계형 데이터베이스의 데이터를 자동으로 맵핑 시켜준다. SQL Query가 아닌 직관적인 코드(메서드)로 데이터 조작 JPA, Hibernate |
⑥ Hibernate
JPA의 실제 구현체
ORM(Object/Relational Mapping) 프레임워크
HQL(Hibernate Query Language)라는 객체 질의어를 제공
SQL을 몰라도 되기 때문에 개발자의 부담이 줄어든다.
실행 시에 DBMS에 맞추어 SQL 문을 자동 생성하기 때문에 특정 DBMS에 종속되지 않는다.
데이터베이스의 정규화(normalized)가 잘돼 있어야 한다.
테이블을 객체와 연결하기 쉽고, 객체를 통해 테이블의 데이터를 다루기가 쉽다.
데이터베이스의 특징에 맞추어 최적화를 할 수 없다.
데이터베이스 마다 실행 성능을 높이고 데이터 처리를 쉽게 해주는 특별한 기능을 각각 가지고 있다.
이런 기능을 활용할 수 있도록 전용 SQL을 제공하지만, ORM에서는 SQL을 직접 작성하지 않기 때문에 최적화가 쉽지 않다.
≫ 사용자가 Database에 데이터를 저장하고 꺼내기 위해서는 DBMS와 통신을 한다.
여러 DBMS가 존재함, Java언어에서는 JDBC를 이용함.
ORM은 객체 지향 프로그래밍에서 객체와 관계형 데이터베이스의 데이터를 맵핑 시켜주는 것이며 Java에서는 JPA 사용, Jpa의 실제 구현체가 Hibernate임
※ ORM 기술을 구현한 프레임워크에 대한 표준화 → JPA → JPA 인터페이스에 맞추어 구현된
프레임워크 Hibernate, TopLink, CoCoBase 가 있다.
'WEB > 기타' 카테고리의 다른 글
[JPA] 2. JPA 사용 설정 (0) | 2024.01.20 |
---|---|
[JPA] 1. JPA (Java Persistence API) 란? (0) | 2024.01.20 |
[Thymeleaf] 4. Thymeleaf 템플릿 만들기 (0) | 2024.01.19 |
[Thymeleaf] 3. Thymeleaf 기본문법 (0) | 2024.01.19 |
[Thymeleaf] 2. Thymeleaf 사용 설정 (0) | 2024.01.19 |
- Total
- Today
- Yesterday
- JPA Auditing #JPA
- SQL #TABLE생성 #SQL제약조건
- S-Core
- 세방고딕체 #웹폰트 #무료폰트 #무료웹폰트 #디자인폰트 #이벤트폰트 #디자인폰트 #타이틀용폰트
- SELECTANY #SELECTALL
- 카페24폰트 #무료폰트 #무료웹폰트
- 이벤트폰트 #이벤트용폰트 #디자인폰트 #디자인서체 #웹폰트
- JDBC #DBMS
- 무료폰트 #무료웹폰트 #평창평화체 #평화체 #이벤트용서체 #이벤트서체 #디자인폰트
- thymeleaf
- jQuery #jQuery이미지슬라이드 #이미지슬라이드
- JPA #JPA설정
- SQL #SQLJOIN #JOIN #INNERJOIN #OUTERHJOIN
- JPA #JPAEntity
- JPA #
- SELETE
- ORM종류
- SQL명령어 #SQL
- Hibernate #ORM
- Thymeleaf #타임리프
- S-CoreDream
- 프리텐다드폰트 #고딕폰트 #무료폰트 #타이틀용폰트 #고딕 #웹폰트 #디자인폰트
- JPA #JPAEntity #JPA연관관계
- JPA Repository query keywords
- 지마켓산스(Gmarket Sans)체 #지마켓산스 #Gmarketfont #GmarketSans #무료폰트 #타이틀폰트 #디자인폰트 #웹폰트
- JPA #JPARepository
- DB #DBCREATE #DBDROP #DBBAKUP
- DTO #Entity
- 나눔폰트 #네이버글꼴 #네이버폰트 #고딕폰트 #본문폰트 #제목폰트 #무료폰트 #디자인폰트 #웹폰트
- SQL #INSERTINTO #DELETE #UPDATE
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
31 |