본문 바로가기

CS13

아파치 톰캣 보호되어 있는 글 입니다. 2023. 10. 16.
[DB] 외래키는 꼭 설정해야할까? 실제 비즈니스에선 외래키를 두지 않고 테이블을 구성하는 경우가 있다고 한다. 외래키를 둠으로 릴레이션간 무결성을 지켜낼 수 있지만 이런 무결성을 지키기 위한 규칙에도 시간적 비용이 들기에 데이터의 삽입, 갱신, 삭제가 빈번하다면 외래키를 따로 두지 않고 설계하는 것도 방법이라 볼 수 있다. (무결성 정도 등)품질이 보증되지 않은 레거시 데이터를 저장해야하는 경우에도 외래키를 배제하고 설계할 수 있다. 참조 https://dataedo.com/blog/why-there-are-no-foreign-keys-in-your-database-referential-integrity-checks 2023. 7. 19.
[DB] 데이터베이스 종류와 장단점 데이터베이스 종류 계층형 데이터베이스 네트워크형 데이터베이스 관계형 데이터베이스 비관계형 데이터베이스 데이터베이스 종류 계층형 데이터베이스 네트워크형 데이터베이스 관계형 데이터베이스 비관계형 데이터베이스 계층형 데이터베이스 데이터의 관계가 트리 구조로 정의된다. 상위 레코드가 복수의 하위 레코드를 가지는 구조. (1:N 관계) 데이터베이스에서 사용되기보단 XML, yaml, 파일 시스템 등에서 사용된다. 장점 1:N 관계를 가지는 데이터를 처리하기에 좋다. 무결성을 유지하기 좋다. 단점 구조변경이 어렵다. 1:N 관계에 한정된다. 네트워크형 데이터베이스 네트워크 구조로 정의된다. N:N 관계를 가진다. 장점 계층 구조에 링크를 추가해되어 모든 데이터에 접근이 가능하다. 단점 구조 변경 시 모든 데이터에 .. 2023. 7. 18.
[DB] 릴레이션, 튜플, 속성, 도메인 관계형 데이터베이스는 테이블을 이용해 데이터 상호 관계를 정의하는데이터베이스이다. 개체(Entity)와 관계(Relationship)를 모두 릴레이션(Relation)이라는 테이블로 표현한다. 장점 가독성이 좋고 구조적이다. ACID 규정을 지킨다.(원자성, 일관성, 격리, 내구성) 사용하기 편하다 정규화를 통해 무결성을 개선할 수 있다. 단점으로는 성능이 떨어진다. 릴레이션은 관계형 데이터베이스의 테이블을 이르며 구조를 나타내는 릴레이션 스키마와 실제값인 릴레이션 인스턴스로 구성된다. 튜플 릴레이션을 구성하는 각각의 행. 속성의 모임으로 구성되며. 파일 구조에서 레코드와 같은 의미이다. 튜플의 수를 카디널리티 또는 기수라고 한다. 속성 데이터베이스를 구성하는 가장 작은 논리적 단위이며 객체의 특성을 기.. 2023. 7. 18.
[DB] 이상 현상(Anomaly) 관계형 데이터베이스를 설계하면서 정보의 이상 현상을 고려해야하는데 이상 현상은 데이터베이스를 잘못 설계해 데이터를 삽입, 갱신, 삭제 할 때 논리적 이상이 생기는 경우를 말합니다. 삽입 이상: 자료를 삽입할 때 의도하지 않은 자료까지 삽입해야만 테이블에 추가가 가능한 경우 강의를 수강하지 않은 새로운 학생을 삽입할 경우 아직 수업을 수강하지 않았다면 수업관련 속성이 한 테이블에 속한 경우 null값이 들어가야만 학생을 삽입할 수 있습니다. 이 때 수업관련 속성이 NOT NULL이라면 이 데이터는생성될 수 없습니다. 갱신 이상: 중복된 데이터 중 일부 튜플만 수정되어 데이터 모순이 일어나는 경우 한 사람의 정보가 달라졌을 때 그 사람의 모든 튜플이 새로 갱신되어야 합니다. 같은 사람의 데이터가 한 테이블에.. 2023. 7. 18.
[DB] DB설계 정리 (정규화) 정규화란 정규화 장단점 Functional Dependency Key 제 1 정규화 제 2 정규화 제 3 정규화 BCFN 정리 정규화(Normalization)란 테이블 간 데이터 중복을 최소화하여 무결성을 지키고 DB 저장용량을 줄이며, insertion, update, delete anomaly를 최소화하는 행위이다. 데이터 무결성 : 데이터 무결성은 데이터의 정확성, 일관성, 유효성이 유지되는 것을 의미한다. 그리고 정규화는 방식(rule)에 따라 단계로 나뉘어진다. 초기 테이블에서 순차적으로 정규화를 진행하면 되지만, 현업에서는 최대 BCNF 단계 정도만 진행한다고 한다. 경우에 따라서 테이블 JOIN에는 큰 비용이 들 수 있어 정규화를 되돌리는 역정규화 또한 존재한다. 정규화 장, 단점 정규화의.. 2023. 7. 17.
RESTful 하다. (REST API와 RESTful 정리) API 란 REST API 란 배경 형태 특성 장점 단점 RESTful 이란 uniform interface 제약조건 RESTful API design guide 현실 API 란 개인적인 정의입니다. Interface의 정의: 복잡한 로직을 사용(접근)하기 편하게 구현한 것 API(application programming interface)의 정의: 앱 서비스에서 존재하는 사용자에게 제공될만한 기능들을 사용하기 편하게 구현한 것 ex ) TV 리모컨 : TV 채널을 돌리기 위해서 일어나야할 리모컨 안에서의 복잡한 작업을 사용자는 알 필요도 없이 사용하기 편하게 버튼 하나 누름으로 채널을 바꿀 수 있게 구현하였다. REST API 란 REST는 Representational State Transfer의 .. 2023. 7. 13.
Base64란 무엇이고, 왜 쓰는 걸까 (뜻 과 사용 목적, 인코딩 예) Base64의 뜻 Base64의 사용 목적 Base64의 뜻 Base64란 이진 데이터를 ASCII 코드 일부의 문자들로 인코딩하는 방식, 규격을 일컫는 말입니다. 64 = 2^6 Base64의 사용 목적 이진데이터의 기본적인 8비트를 6비트로 바꾸니 의야할 수 있습니다. 기존 표현범위에서 2비트를 뺀 셈이기도 하니. 그래도 우리는 Base64를 사용함으로써 이진데이터들을 오직 Base64에서 정한 텍스트로써 다룰 수 있습니다. 이는 웹상으로 더욱 안전하고 범용적으로 사용할 수 있게 합니다. 여기서 안전하다는 의미는 기존 ASCII는 문자를 표현하는데 7비트만을 사용합니다. 고로 바이트(8비트) 단위의 이진데이터를 변환하는데 있어 부적합합니다. 어느 기기에서는 8비트에서 7비트의 ASCII 표 현 후 남.. 2022. 5. 26.