🗄️Tổ chức dữ liệu
-
-:
-
Định dạng dữ liệu:
- Dữ liệu bán cấu trúc là dữ liệu cấu trúc không theo dạng bảng
- Không nên phân chia dữ liệu có cấu trúc và dữ liệu bán cấu trúc, mà nên phân chia là dữ liệu có cấu trúc dạng bảng và dữ liệu có cấu trúc không phải dạng bảng
- Định dạng dữ liệu
- Việc phân loại SQL và NoSQL giống như việc phân loại người dị tính hợp giới và người không dị tính hợp giới, hoặc phân loại người Kinh và người không Kinh
- JSON hữu ích trong việc truyền dữ liệu vì nó hướng đến việc trở thành phần giao của các ngôn ngữ, chứ không phải phần hợp của chúng
- JSON không cho phép để dư dấu phẩy, không có comment, thuộc tính phải được đóng trong ngoặc kép
- JSON là cách để biểu diễn vật thể ra chữ, chứ tự nó không phải là vật thể
- JSON Schema dùng để đảm bảo file JSON được viết đúng
- Chữ ML trong HTML, XML, YAML, TOML là viết tắt của markup language
- Ngôn ngữ đánh dấu mạnh có thể sử dụng cho dữ liệu có cấu trúc vì spec của nó có nói rõ dữ liệu nên được lưu thế nào
- Ngôn ngữ đánh dấu
- RDF có thể được biểu diễn bằng JSON-LD
- XML là dạng dữ liệu bán cấu trúc
- Parser là chương trình để biến dữ liệu dạng chữ thành dữ liệu có cấu trúc
- Chuyển từ YAML sang JSON
- YAML thì để con người dễ đọc, còn JSON là để máy dễ đọc
- YAML được sinh ra để con người đọc và viết metadata một cách dễ dàng
- Giao diện block cho phép người dùng linh hoạt hơn mà vẫn giữ được sự cấu trúc
- Khó có thể copy dữ liệu dạng block giữa các app khác nhau
- Mở rộng quy mô bằng việc nâng cấp RAM, CPU dễ hơn với SQL. Mở rộng quy mô bằng việc chạy cùng lúc nhiều máy dễ hơn với NoSQL
-
Đồng bộ, sao lưu:
- Blob, tree, commit và annotated tag là các object chính
- Bản chất của Git chỉ là những cặp giá trị key – value
- Commitist và treeist
- Các commit được nối với nhau bằng hash
- Có thể hiểu blob là hash của một tệp, tree là hash của một thư mục, còn commit thực ra chỉ là hash của cả thư mục tổng
- Key là hash của object, value là nội dung object
- Có thể xem nội dung file với hash là như nhau. Nhưng file thì có thể có kích thước vô cùng lớn, còn hash thì luôn chỉ có 40 ký tự
- Lệnh sứ là các lệnh dành cho người dùng. Lệnh ống nước là các lệnh lõi để dùng kèm với các lệnh Unix khác
- amend sẽ squash cả đầu nhánh, chứ không chỉ commit cuối cùng
- [[🗄️Tổ chức dữ liệu/Đồng bộ, sao lưu/Git/Blob, tree, ref. Bên trong Git/Ref/Cái nào có ref thì
git gc
sẽ không đụng tới.md|Cái nào có ref thìgit gc
sẽ không đụng tới]] - Có 2 chỗ để lưu ref
- Dấu ngã và dấu mũ là để chỉ các commit trước đó
- git reflog giúp xem lại các ref không có trong lịch sử commit
- git reflog là phao cứu sinh cho những lỗi lầm khi dùng Git
- @ là viết tắt của HEAD
- HEAD là commit hiện tại
- Trạng thái mất đầu (detached HEAD) là khi HEAD chỉ trực tiếp vào commit chứ không phải vào nhánh
- Ref là hệ thống đặt tên các object
- origin, upstream là những cái tên thường dùng cho remote
- pull không lấy file mới về, mà lấy commit mới về
- Có thể xem Git là một dạng xích khối
- Các lệnh Git thường dùng
- Facebook chuyển sang Mercurial vì nhóm phát triển Git năm 2012 không mặn mà với monorepo
- Các lỗi Git thường gặp
- Git giúp ta du hành thời gian
- Git được sinh ra để giải quyết nhu cầu của Linus, một người viết nhân hệ điều hành
- Git
- Git không biết gì về folder
- git status giúp xem những file nào đã được vào stage
- pathspecs giúp chọn đường dẫn một cách linh hoạt và tinh tế hơn
- Khi amend, rebase, push force thì author date vẫn giữ nguyên, còn commit date mới cập nhật
- Reset soft dùng để gộp nhiều commit lại với nhau. Reset hard dùng để xoá bỏ những gì đã ghi sau commit được chọn
- git add -A làm cho index giống như ở working directory. git commit -am chỉ áp dụng cho những file đã có sẵn trong index
- Stage, cache, index là những cái tên khác nhau cho cùng một thứ
- Untracked, staged, unchanged và unstaged là 4 trạng thái chính của một file
- Stash không lưu file chưa được stage
- Stash cung cấp các lệnh dễ chịu hơn cho những lưu trữ tạm thời, dù về mặt kỹ thuật thì dùng commit và branch có nhiều ưu điểm hơn
- Stash là một commit, có cha là commit HEAD và mẹ là commit từ index
- Chỉ có duy nhất stash mới nhất là có ref, tất cả các stash còn lại thì không
- Thứ ta đang trực tiếp chỉnh sửa mà ta tưởng là dữ liệu của mình thực chất là thứ được vay mượn từ commit
- Việc commit giúp ta phá code mà không sợ gì, giống như có đồ bảo hộ rồi thì tha hồ nghịch điện cao thế
- Real-time collaboration isn’t necessary in most cases, but asynchronous collaboration
- 2 chấm và 3 chấm trong log và diff
- Cây lịch sử có thể được dùng như là bản lưu những gì đã diễn ra, hoặc là một câu chuyện kể về chúng
- diff does not take into account untracked files
- git diff chỉ so sánh working tree với index, không phải HEAD. Muốn so sánh với HEAD phải dùng git diff HEAD
- git diff thường dùng
- git log –all chỉ hiện những commit nào tiếp cận được từ tất cả các ref
- git log giúp xem lịch sử các commit
- ls-files chỉ làm việc với index
- Fast forward
- Khi viết tính năng mới nên tạo branch mới
- git merge B nên được hiểu là git merge A with B. git rebase A nên được hiểu là git rebase B to A
- Khi merge, ours là branch hiện tại. Khi rebase, theirs là branch hiện tại
- Merge dùng để bảo lưu sự song song của các thay đổi đã xảy ra trên code. Rebase dùng để đảm bảo cây lịch sử phản ánh sự tuần tự trong quá trình thay đổi code của mình
- Rebase thích hợp khi phải merge nhiều branch, do nó làm cây lịch sử gọn hơn
- Git tag
- Tất cả những gì Git làm chỉ để làm một việc là điều khiển các đồ thị
- GitHub Page không nhận ra các thư mục có dash phía trước, chỉ đọc được trong docs
- Template và fork
- Website GitHub giống như là để teamview máy tính của GitHub
- Tạo nhánh mới khi tạo PR sẽ dễ quản lý hơn
- Real-time collaboration isn’t necessary in most cases, but asynchronous collaboration
- Hướng dẫn đồng bộ dữ liệu với Android
- Nếu có xung đột thì tệp có thời điểm chỉnh sửa cũ hơn sẽ được đổi tên và được xem là gây xung đột
- Ảnh lưu trên kho trên điện thoại sẽ được thấy trong gallery ảnh
- Syncthing dành cho đồng bộ dữ liệu giữa các thiết bị của cùng một người. Git chuyên cho việc hợp tác làm việc giữa nhiều người
-
Mô hình dữ liệu:
- Các chương trình ứng dụng không giao tiếp trực tiếp với CSDL mà qua một trung gian gọi là hệ quản trị cơ sở dữ liệu
- Excel không phù hợp cho việc lập cơ sở dữ liệu
- File Google Docs không thực sự là file
- Ứng dụng quản lý là một dạng giao diện giữa người dùng và cơ sở dữ liệu
- DBMS cấu trúc những cách ta tổ chức và tương tác với mọi dữ liệu được lưu trữ