✔️Database 7

[Data Modeling] Apache Cassandra

1. Apache Cassandra란? Apache Cassandra is an open source NoSQL distributed database trusted by thousands of companies for scalability and high availability without compromising performance. Apache Cassandra는 scalability와 high availability에 적합한 수많은 회사들이 사용하고 있는 오픈 소스 분산형 NoSQL 데이터베이스 관리 시스템이다. 하지만 정의를 봐도 잘 이해가 되지 않는다. '분산형 데이터베이스가 뭔지, 어떻게 scalability와 high availability 하길래 최적화 되어있다는 것인지 모르기 때문이다...

[Database] Database Index

youtu.be/ZugmrJnbvdU Database Index란 데이터베이스는 파일들의 집합으로 저장되고, 각 파일은 일반적으로 동일한 유형의 레코드들의 모임으로 이루어진다. 이 파일들은 일반적으로 디스크와 같은 보조 기억 장치에 저장된다. Index는 DBMS가 파일 내의 특정 레코드들을 빠르게 찾을(특히 SELECT) 수 있도록 하는 데이터 구조이므로 인덱스를 통하여 질의를 수행하면 응답시간이 향상된다. 인덱스의 유형은 크게 단일 단계 인덱스와 다단계 인덱스로 구분된다. Index의 장/단점 1) 장점 - 검색 속도가 빨라질 수 있다. - 그 결과 해당 쿼리의 부하가 줄어들어서, 결국 시스템 전체의 성능이 향상된다. 2) 단점 - 인덱스가 데이터 베이스의 공간을 차지하기 때문에 대략 데이터 베이스 ..

[Database] 무결성 제약조건

1. 무결성 제약조건이란 데이터 무결성: 데이터의 정확성 또는 유효성을 의미 무결성 제약조건: 데이터베이스 상태가 만족시켜야 하는 조건이자 사용자에 의한 데이터 베이스 갱신이 데이터베이스의 일관성을 깨지 않도록 보장하는 수단 무결성 제약조건의 목적: 일관된 데이터 베이스 상태를 정의하는 규칙들을 명시적으로 정의하여서 권한을 가진 사용자들로부터 데이터베이스의 정확성을 지키는 것 무결성 제약조건의 장점: 스키마를 정의할 때 일관된 데이터베이스 상태를 정의하는 규칙들을 한 번만 명시하면 되고, 데이터베이스가 갱신 될 때 DBMS가 자동적으로 이러한 일관성 조건을 검사해주므로 응용 프로그램단에서 이를 일일이 신경써주지 않아도 된다. 2. 무결성 제약조건의 종류 도메인 제약조건: 각 애트리뷰터 값이 반드시 원자값..

[초기 세팅 및 배포] DB Setting

우리 프로젝트의 DB스키마는 위의 그림과 같다. (※ 현재 2020/12/13일, 프로젝트를 진행하면서 DB구조가 약간 수정되었다. 수정된 DB 스키마는 아래 를 클릭하면 볼 수 있다. ) 더보기 1. 각 테이블 설명 schedules_date: 각 알람 하나하나의 정보를 담고있는 테이블 scedules_common: 한 주기를 가지고 있는 알람 정보 테이블 users: 사용자 정보 테이블 (login 필드는 'social'이면 소셜회원가입을 한 것, 'basic'은 일반 회원가입으로 가입한 것을가 다 나타낸다.) medicines: 약 정보가 담긴 테이블 2. Relationship user 1 - schedule_date n (schedules_udate) user 1 - schedule_common..

[RDS] 데이터베이스 서버 생성과 접속

첫 번째 프로젝트로 진행한 SAFU 웹 서비스 을 배포하기 위해 서버 구축을 하려하며, '서버 단위의 로드 밸런서' 아키텍쳐 중 애플리케이션 서버가 (일단은)하나인 아래의 구성으로 진행하고자 한다. [EC2] AWS를 이용한 서버 환경 이해 및 구축에 정리해둔 를 보면 단일서버의 여러 단점으로 인해 애플리케이션과 데이터베이스 서버를 분리하는 구조가 나왔다. 그리고 서버 단위의 로드 밸런서는 이런 구조로 되어 있다. 여기서 RDS로 데이터베이스 서버를 만들어보고자 한다. 1. Amazon RDS(Relational Database Services) Amazon RDS는 클라우드에서 관계형 데이터베이스를 간편하게 설정, 운영, 확장 할 수 있는 서비스이다. 이는 매우 비싸다. (프리티어는 RDS 단일 AZ(..

Dev/DevOps, Infra 2021.01.13

3. [Server] Sequelize DB 세팅(Oct 17~18, 2020 회고)

API 와 마찬가지로 DB schema역시 Client 파트와 Server 파트의 커뮤니케이션 및 합의가 많이 이루어지는 부분이다. 프로젝트를 진행하기 이전에는 DB에서 MVC 디자인 패턴으로 데이터를 가져오는 것은 Server 파트라고 생각했던 탓인지 client와 server 파트를 오가며 코드 리뷰하는데 이 부분이 은근 많은 걸림돌이 되었다. 그리고 프로젝트가 2/3 정도 마무리 될 쯤에 회원탈퇴에 대한 DB 처리 이슈가 큰 논의사항이 되었고, 그래서 많은 마이그레이션이 이루어졌는데, 만약 이러한 상황이 파트 불문하고 커뮤니케이션이 바로바로 이루어지지 않았다면 DB가 꼬여버리는 현상이 발생하게 된다. (ex. '같은 시점에서 저도 pull 받아왔는데 저는 왜 DB에서 데이터를 받아올 때 null 에..

29. Databases - Structured Query Language with Database

이번 sprint에서는 대표적인 관계형 데이터베이스관리 시스템(RDBMS)인 MySQL을 이용하여 Schema를 설계하고 SQL을 사용하여 데이터를 영속성있게(persisstently)저장하는 방법을 배우는 것이 목표였다. 0. 데이터베이스가 필요한 이유 지난 여러 sprint를 진행해 오면서는 서버를 작성하고, 생성된 데이터들은 in-memory상에 저장하여서 클라이언트에서 HTTP를 이용하여 자원(데이터)를 요청하면 서버에 이 데이터를 돌려주는 방식으로 진행했었다. (*in-memory: 서버가 켜져 있을 동안에만 변수에 할당된 값을 통해 저장하는 것) 그 다음에는 node.js의 fs모듈 중 readFfile이나 writeFile method를 이용하여 정보를 파일로 저장하기도 했다. 이 두 방식의..

Dev/SW Engineering 2020.08.17