'오라클'에 해당되는 글 3건

  1. 2023.08.17 PostgreSQL과 오라클의 차이점
  2. 2022.11.29 오라클 -> MySQL SQL 마이그레이션
  3. 2019.07.15 ERD (ER 다이어그램) 작성 방법

PostgreSQL과 오라클의 차이점

Back-End/Data Base 2023. 8. 17. 18:11
728x90
반응형

1. 라이선스 및 비용: PostgreSQL은 오픈 소스 프로젝트로, 무료로 사용하고 수정할 수 있습니다.
오라클은 상용 제품으로 라이선스 비용이 발생하며, 큰 기업에게는 상당한 비용 부담이 될 수 있습니다.

 

2. 라이선스 모델: PostgreSQL은 PostgreSQL 라이선스를 따르며, 오픈 소스 커뮤니티의 협력을 통해 개발되고

유지보수됩니다. 오라클은 프로프리어터리(상용) 라이선스를 따르며, 오라클 공식에서 개발 및 지원됩니다.

 

3. 기능 및 확장성: 오라클은 대규모 엔터프라이즈 환경에서 사용하기 위해 많은 기능과 확장성을 제공합니다.

복잡한 트랜잭션 처리, 병렬 처리, 클러스터링 등을 지원합니다.
PostgreSQL도 많은 기능과 확장성을 제공하지만, 몇몇 엔터프라이즈 기능은 오라클에 비해 제한적일 수 있습니다.

 

4. SQL 호환성: 둘 다 SQL 표준을 따르지만, 오라클과 PostgreSQL 간에는 특정 SQL 문법 및 기능에서

차이가 있을 수 있습니다.

 

5. 설치 및 관리: PostgreSQL은 일반적으로 설치 및 관리가 상대적으로 쉽고 간단합니다.
오라클은 설정 및 관리에 일부 복잡한 과정이 필요할 수 있습니다.

 

6. 용도와 적합성: PostgreSQL은 중소규모부터 대규모까지 다양한 규모의 프로젝트에 적합하며, 특히 중소기업이나

개발자 커뮤니티에서 널리 사용됩니다.
오라클은 대규모 엔터프라이즈 환경에서 주로 사용되며, 고성능, 고가용성, 보안 등에 중점을 둡니다.

 

7. 성능: 오라클은 대량 데이터 처리와 고성능 환경에 최적화된 기능을 제공하므로, 대규모 트랜잭션 처리나

데이터 분석에 강점을 가질 수 있습니다.
PostgreSQL도 높은 성능을 제공하지만, 오라클의 성능과 비교할 때 환경 및 사용 사례에 따라 성능 차이가

발생할 수 있습니다.

728x90
반응형
:

오라클 -> MySQL SQL 마이그레이션

Back-End/Data Base 2022. 11. 29. 22:30
728x90
반응형

1. 일부 매칭되는 문법 정리

오라클 My SQL
VARCHAR2 VARCHAR
NUMBER INT
DATE DATETIME
SYSDATE CURRENT_TIMESTAMP

 

2. 시퀀스 생성

 

오라클에서는 시퀀스를 지원하지만, MySQL에서는 시퀀스 기능이 별도로 존재하지 않기때문에, 다음과 같이 사용합니다.

 

ㄱ. 시퀀스를 사용할 테이블 생성

CREATE table SPRING.SEQUENCES
(
NAME VARCHAR(32)

 

, CURRVAL BIGINT UNSIGNED
)
 

ㄴ. 시퀀스를 생성 할 프로시저 생성

create procedure SPRING.create_sequence (in the_name text)
modifies sql data
deterministic
begin
delete from SEQUENCES where name = the_name;
insert into SEQUENCES values(the_name, 0);
end;

 

ㄷ. 생성 한 시퀀스의 다음 값을 가져오는 함수 생성

create function SPRING.nextval (the_name varchar(32))
returns bigint unsigned
modifies sql data
deterministic
begin
declare ret bigint unsigned;
update SPRING.SEQUENCES set currval = currval + 1 where name = the_name;
select currval into ret from SPRING.SEQUENCES where name = the_name limit 1;
return ret;
end

 

ㄹ. 만들어야할 시퀀스를 시퀀스 테이블에 생성

 

call SPRING.create_sequence('ADMIN_BNO');

 

 

ㅁ. Insert 문에서 시퀀스 사용 예시

 

SPRING.nextval('ADMIN_BNO') FROM DUAL 등을 사용해서 시퀀스를 사용

728x90
반응형
:

ERD (ER 다이어그램) 작성 방법

Back-End/Data Base 2019. 7. 15. 16:51
728x90
반응형

데이터 모델은 데이터베이스에 독립적이다.

 

정보 시스템을 개발하기 전에 보다 많은 아이디어를 도출하고 데이터베이스 설계의 이해를 높이기 위해

 

데이터모델링을 한다,

 

관계형 데이터 모델은 실체(Entity), 속성(Attribute), 관계(Relationship)로 구성된 ER Diagram으로 표현된다.

 

 

관계형 데이터 모델 - 데이터베이스 개발 과정

 

  1. 업무 정보화 요구
  2. 개념 데이터 모델링 - 분석, 전략 수립
  3. 데이터베이스 설계 - 설계
  4. 데이터베이스 생성 - 개발

 

 

ERD는 개념 데이터 모델링 단계에서 작성하는 다이어그램

 

 

실체(Entity) : 관리하고자 하는 정보의 실체

 

ㄴ둥근 사각형으로 작성

ㄴEntity 이름은 단수형이고 유일하며 대문자로 크게 표기 할 것. ( )안에 동의어 표기 가능.

ㄴ모든 Entity는 하나 이상의 식별자 (UID : Unique Identifier)을 가져야한다.

ㄴUID가 없다면 Entity가 아님

 

 

 

속성(Attribute) : Entity를 구성하고 있는 구성 요소

 

ㄴAttribute 이름은 소문자로 작게 표기할 것.

ㄴEntity 이름과 Attribute 이름이 같으면 안됨.

ㄴ"#"  은 UID. "*"는 필수(Mandatory). "o"는 선택(Optional) Attribute를 의미

ㄴ자신의 Attribute가 아니면서 Relation을 위해 자신의 Attribute로 표시해서는 안된다.

 

 

 

관계(Relationship) : Entity간의 관계

 

ㄴ 두 Entity 사이에 선을 긋고 관계 명칭을 기록한다.

ㄴ 선택 사항을 표시한다.

ㄴ 점선은 선택 (may be) 을 의미 (부서입장에서는 사원을 배치받을 수도 있고, 안받을 수도 있기 때문에)

ㄴ 실선은 필수 (must be) 를 의미 (사원입장에서는 반드시 부서에 배치되어야 하기 때문)

ㄴ 관계 형태를 표시한다.

ㄴ 새 발 모양은 하나 이상 (one or more) 을 의미 (사원 여러명이 한 부서에 속할 수 있기때문)

ㄴ 단 선은 단 하나 (one and only one) 를 의미 (한명의 사원은 한 부서에만 소속될 수 있다.)

 

 

 

 

Relationship 표현

 

 

 

 

Relationship 읽기

 

 

먼저 한 방향 (좌 -> 우)을 읽고 난 후에 다른 방향 (우 -> 좌)을 읽는다.

 

 

 



  관계 형태 - 1 : 1 관계


  


  ㄱ. 양쪽 방향 모두 단 하나씩 (one and only one) (라면은 두개 이상의 스프를 포함하고 있지 않고, 스프도 한개이상의 라면에 들어있지 않다.)


  ㄴ. 드물게 발생되는 형태


  ㄷ. 양방향 모두 반드시 (must be) 가 되는 경우는 아주 드물다.


  ㄹ. 1 : 1 관계는 실제로는 동일한 ENTITY일 경우가 많다.

 

 

 



  관계 형태 - M : 1 관계


  


  
  ㄱ. 한쪽 방향은 하나 이상 (one or more) (각 사원은 단 하나의 부서에 반드시 소속되어야 하고, 각 부서는 여러명의 사원을 배치받을 수 있다.)


  ㄴ. 다른 방향은 단 하나씩 (one and only one)


  ㄷ. 가장 일반적인 관계 형태


  ㄹ. 보통 must be와 may be로 지정되나 양방향 모두 must be로 지정되는 경우도 있다.

 

 

 

  
  관계 형태 - M : M 관계
  
  


  ㄱ. 양쪽 방향 모두 하나 이상 (one or more) 
       (각 학생은 하나이상의 교육과정에 신청할 수도 있고, 각 교육과정은 여러 학생을 등록 받을 수 있다.)


  ㄴ. 자주 발생되는 형태이지만 최종 결과에서는 M : M 관계는 나타나지 않는다.


  ㄷ. 상세 개념모델링 (Advanced Conceptual Data Modeling) 단계에서 M : 1 관계로 분할된다.
       (M : M관계를 그대로 놔두면 문제가 발생되기 때문)


   - ( 학생과 교육과정 사이에 교육과정 사이에 "수강신청"이라는 Entity를 만들어서 학생은 자신이 수강신청한 
     교육과정에만 관계를 맺고 있으면 된다. 이런식으로 M : M 관계를 M : 1 관계로 분할시키면 된다. )

 

 

 



  UID Bar


  한 사람의 사원의 부양가족을 확인하려면 부양가족 테이블에 "사번" Entity가 있어야 하는데 


  부양가족의 UID를 -> 사번 + 주민번호 (기본키를 복합키로) 로 해서 한 사람의 사원에 대한 부양가족을 찾을 수 있다.


  

 

 

 



 데이터베이스 설계


 - Entity를 Table로 Mapping


 - Attribute를 Column으로 Mapping


 - UID를 Primary Key로 Mapping


 - Relationship을 Foreign Key로 Mapping

 

 

관계형 데이터 모델 - 요약

 



 - 데이터 모델은 데이터베이스에 독립적이다.


 - 데이터 모델링은 건축물의 설계도를 그리는 작업과 같다. 


 - 관계형 데이터 모델은 여러 가지 데이터 모델 중 가장 널리 사용되는 모델이며, 실체(Entity), 속성(Attribute), 관계(Relationship)로 구성된
   ER Diagram으로 표현된다.


 - Entity는 하나 이상의 식별자 (UID : Unique Identifier)를 가져야 하며 UID가 없다면 Entity가 아니다.


 - E - R Diagram 작도 시 관계를 표현할 때에는 어떤 Entity가 주(主) 인가를 잘 따져서 표현한다.


 - 관계의 종류에는 M : 1, M : M, 1 : 1 이 있는데 M : 1 관계가 대부분이다.
   M : M 관계는 상세 관계 모델링 단계에서 M : 1로 분할 되며, 1 : 1 관계는 대부분 하나의 Entity로 표현 가능한 경우가 많다.


 - 관계형 데이터베이스는 2차원 테이블로 데이터를 표현한다.

아래 책은 제가 공부할때 활용했던 책으로 추천드리는 책이니 한번씩 읽어보시는것을 추천드립니다!! ㅎㅎ

토비의 스프링 3.1 세트:스프링의 이해와 원리 + 스프링의 기술과, 에이콘출판

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

출처

https://www.youtube.com/watch?v=mehjXqNKvh8

728x90
반응형
: