반응형

DATABASE 19

태태코딩 - DB 설계 입문/실전

1. 공부하는 법.단순 듣기, 단순 코드따라치기가 아닌 , 자신만의 언어로 바꿔라 (ex 블로깅, 기록) 2. 파레토 법칙현업에서 사용하는 20% 만 알아도 80%의 효과를 낼 수 있다.자주사용하는 20%만 확실하게 알자 !  완벽주의 성향 --> 나.. 그렇게 공부했지만 너무 오래 걸렸다.. 실전에 적용해보자. 3. First wood이해가 안되는 언어가 많을 수록 어려운 분야라고 생각한다.효율적인 공부를 하기위해서는 이해가 안되는 언어일 수 록 가장 먼저 정리를 해야한다. 데이터베이스 모델링이란? 정의: 웹 서비스나 모바일 어플리케이션을 운영하면서 발생하는 데이터를 잘 분류해서 데이터를 저장해 놔야한다.즉 : 데이터를 어떻게 분류해서 저장할 지를 설계하는 행위를 보고, 데이터베이스 모델링(Databa..

DATABASE 2024.12.21

태태개발일지 - 공유락, 베타락

공유락 베타락공유 락과 베타 락은 비관적 락의 데이터 일관성과 무결성을 위해 사용하는 락 유형이다. DB LOCK에 대한 간단한 정보는https://taetaecoding.tistory.com/155 태태개발일지 - DB LockDB LOCK간단한 개념 정리를 위해서 간략하게 정리해본다. 문제상황 DB락을 사용할 때에는 동시에 접근할 가능성을 기준으로 낙관적락 을 쓸지, 비관적 락을 쓸지 결정하게된다. 낙관적락을 사용taetaecoding.tistory.com아래 글을 확인하면 된다.오늘은 단순히 비관적 락에 있는 공유 락과 베타 락에 대해서 정리해볼 것이다.  공유락공유락 = (읽기 락) 이라고 부른다. 공유락이 걸린 데이터는 읽기 즉(SELECT) 연산만 가능하고, 쓰기(UPDATE,DELETE) 는..

DATABASE 2024.12.12

태태개발일지 - DB Lock

DB LOCK간단한 개념 정리를 위해서 간략하게 정리해본다. 문제상황 DB락을 사용할 때에는 동시에 접근할 가능성을 기준으로 낙관적락 을 쓸지, 비관적 락을 쓸지 결정하게된다. 낙관적락을 사용하는 경우 충돌이 발생할 가능성이 높을 때 + 만약 lock을 획득하지 못했을 때 취소해도 괜찮은 건지?를 따져보면 된다.ex) 좌석 예약 (1,2,3,4,5) 1. 만약 10명이 2번좌석을 예약하기 API를 요청했을 때 그들중 한명이 좌석예약을 성공했다면, 그 다음사람들은 다시 다른 좌석을 예약야        한다. 즉) API 요청을 취소해버리면된다. 2. 좌석은 (1,3,4,5)로 보여주고 다시 시도할 사람은 다시 요청을 보내면된다. 비관적락을 사용하는 경우   다음 요청도 실패로 하지않고 처리가 필요할 때 +..

DATABASE 2024.10.23

태태개발일지 - Join

Nested Loop Joinselect ~~from tab 1         tab 2where tab1.col1 = '10'and tab1.key1 = tab2.key2 -> 인덱스 필 쑤and tab2.col2 = 'Y';  특징 :1. 연결고리에 인댁스가 존재하는 경우에 사용해야 한다.2. 처리량이 적은 경우 유리하다.3. 순차적으로 처리하며, 부분범위 처리가 가능하다.4. 조인의 순서에 따라서 성능의 차이가 존재할 수 있어, 처리 범위를 줄일 수 있는 순서를 선택해야한다. 작은 테이블을 조인할 때나, 테이블에 인덱스가 있는 경우에는 효율적이야. Hash join - Random Access 와 sort를 어떻게 없앨 것인가?  풀어지는 테이블  = 빌드 테이블Tab2는 메핑되는 것이 있나 없나 ..

DATABASE 2024.10.13

태태개발일지 - DB 관계 데이터 모델링

개체 - 관계 데이터 모델링 1. 일반적으로 알려져있는 데이터 모델링.2. 데이터의 구조를 개체와 개체들의 관계를 표현해 나가며 접근하는 방법론.3. RDBMS는 개체 - 관계 모델을 구현해 놓은 소프트웨어이다.4. RDBMS는 테이블 형태로 데이터를 관리한다.  1. 엔터티(Entity)- 업무상 관심있는 개체의 집합 또는 행위의 집합- 개체의 특성을 설명할 수 있는 속성을 가진다. 2. 속성 (Attribute)- 개체 집합의 특성을 설명하는 항목- ex) 작가인 경우 작가ID 3. 식별자(Identifier)- 개체의 집합에서 하나의 개체를 식별해 주는 속성- 여러개의 속성이 식별자가 될 수 있다. 4. 관계(Relationship)- 엔터티와 엔터티간 연관성을 표현- 연결시 카디날리티 표시- 1:..

DATABASE 2024.10.06

태태개발일지(정규화)

데이터 베이스를 설계할 때 데이터의 중복이 발생하면, 이상 현상이 생깁니다. 그래서 데이터의 중복을 최소한으로 줄여 이상현상을 줄이게 되는 것을 정규화 라고합니다. - 이상현상( 삽입 이상, 삭제 이상, 갱신 이상) 제 입장에서 이해하기 쉽게 설명하겠습니다. 1NF(1정규형) 원자성을 의미합니다. 이름 취미 박땡땡 농구 김철땡 축구, 미식축구 원자성: 더 이상 분해될 수 없고, 쪼갤 수 없는 값을 의미합니다. 즉 테이블에서 행과 열의 값을 고유 원자값으로 표현해 주면 됩니다. 즉 김철땡의 취미가 축구, 미식축구 이렇게 여러개의 값이 들어 있는 것을 볼 수 있는데, 이 값들은 쪼갤 수 있는 원자값이 아니기 때문에 1정규형을 만족시키기 위해서 바꿔야합니다. 이름 취미 박땡땡 농구 김철땡 축구 김철땡 미식축구..

DATABASE 2023.11.27

태태개발일지(DB 프로시저)

저장프로그램 - 정의 Database 저장 프로그램은 프로그램 로직을 프로시저로 구현하여 객체형태로 사용한다. 저장 프로그램은 일반 프로그래밍 언어에서 사용하는 함수와 비슷한 개념으로 취급된다. Mysql일 경우에는 DELIMITER //를 선언해주어야 하고, //는 띄어쓰기를 해야 의식할 수 있다. 그후 CREATE PROCEDURE를 통해 프로시저 선언문을 해주고 BEGIN - END; 안에서 원하는 로직을 실행하면 된다. Create Procedure()에 괄호안에 들어갈 값은 매개변수이고, Declar or set 을 통해서 지역변수를 선언해 줄 수 있다. 예를 들면 코드는 이렇다. DELIMITER // CREATE PROCEDURE insertbook( IN myBookID INTEGER, I..

DATABASE 2023.11.22

태태개발일지(mysql)

현재 한국펀드 평가에 입사하여 여러가지 업무를 배우느라 글쓰기가 밀렸었다.. 오늘부터 일주일에 한 번 이라도 업무를 정리해서 글을 써야겠다는 생각이 들었다. 우선 먼저 해야할 일들을 정리해보자면. 1. 리엑트 공부하기 2. mybatis 공부하기 3. spring legucy파일 구조 이해하기 4. JSP 공부하기 5. 영어공부하기 6. 회사 Data이해하고 사용해보기이다. 이 일들을 분배해서 나눠서 한번 개발 역량을 늘려볼 예정이다. MySQL WorkBench 실행 단축키는 : ctr+shift+enter이다. 현재는 데이터베이스를 다시 한번 공부해보고있고, 앞으로 회사의 데이터를 한번 다뤄보면서 Database와 data에 대한 이해도를 높힐예정이다.

DATABASE 2023.11.10

태태개발일지(데이터베이스 설계단계 ERD)

1. 요구사항 분석 1. 데이터베이스를 사용할 주요 사용자의 범위를 결정 2. 사용자가 수행하는 업무를 분석 3. 수집된 요구 사항 대한 분석 결과를 요구 사항 명세서로 2. 개념적 설계(*) : E-R 다이어그램을 통해 요구사항을 표시 1. 개체 추출, 각 개체의 주요 속성과 키 속성 선별 개체 : 저장할 만한 가치가 있는 중요한 데이터를 가진 사람이나 사물 등 2. 개체 간의 관계 설정 외래키를 사용하여 관계를 설정 1:1, 1:n , m:n 3. E-R 다이어그램 작성 3. 논리적 설계 4. 물리적 설계 개체 (Entity) 사각형이 두개면 weak entity라고 한다. 속성들은 타원으로 표현한다. 동그라미 두개는 여러개의 속성을 준비한다를 의미한다. 관계 마름모로 표현한다. 마름모가 두개에 겹쳐..

DATABASE 2023.10.10
반응형